Ошибка с включенными файлами при попытке скомпилировать программу 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. Я действительно ненавижу сбрасывать все это на людей и просить о решении, но я потратил много времени, пытаясь понять это, и я был бы очень признателен, если бы кто-нибудь мог указать на что-нибудь, что они видят. Спасибо!


person LTClipp    schedule 16.10.2016    source источник


Ответы (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#Flavors для документации.

person Addison    schedule 16.10.2016