Ошибка с включаемыми файлами при попытке скомпилировать программу HDF4
Я пытаюсь скомпилировать программу, которая использует библиотеки HDF4. Я установил HDF4 на свой компьютер в /usr/local/ и подтвердил, что все необходимые сценарии, включающие файлы и библиотеки были установлены и все переменные среды установлены правильно. Я создал Makefile, который компилирует мои два файла C в объектные файлы, а затем связывает их вместе. Когда я компилирую первый файл C, "readHDFfuncs.c", компилятор сообщает мне, что все вызываемые функции HDF4 не были объявлены. Этого не должно быть, потому что мой компилятор h4cc правильно включает в себя правильный каталог.
Я установил для команд h4cc значение -echo и отследил выполнение компиляции. Кажется, все правильно, но по какой-то причине объявления функций не проходят. h4cc - это оболочка gcc, ее основная функция - обрабатывать пути включения.
Я создал Github, чтобы показать вам файлы.
https://github.com/LandonClipp/HDFhelp/tree/master
Включен вывод моей команды make (которая, помните, включает в себя параметр -echo для h4cc), сам Makefile, два моих файла C, файл заголовка и содержимое моего каталога include. Я действительно ненавижу опускать все это на людей и просить найти решение, но я потратил много времени, пытаясь понять это, и я был бы очень признателен, если бы кто-то мог указать на все, что они видят. Спасибо!
1 ответ
Вы пытались предугадывать -I
на пути к файлам в вашем make-файле? Это необходимо при импорте каталогов. Хотя могут быть и другие проблемы.
Таким образом, вторая и третья строки в вашем make-файле станут такими:
INCLUDE=-I/usr/local/hdf-4.2.12/hdf4/include
LIB=-I/usr/local/hdf4.2.12/hdf4/lib
См. https://www.gnu.org/software/make/manual/make.html для документации.