Файл заголовка не найден при сборке под Cygwin - PullRequest
0 голосов
/ 05 сентября 2010

Я пытаюсь собрать определенную библиотеку под Cygwin (OpenEXR), и я получаю следующую ошибку:

b44ExpLogTable.cpp:52:18: error: half.h: No such file or directory
На

half.h ссылается, используя #include <half.h>, и на самом деле является частью другой библиотеки, на которой я успешно запустил make/make install ранее.

Вопрос - при использовании #include с <>, когда препроцессор ожидает найти указанный файл?

(я только что нашел его в /usr/local/include/OpenEXR, но я понятия не имею, почему препроцессор не может).

Обновление: Я также нашел:

Makefile

ILMBASE_CXXFLAGS = -I/usr/local/include/OpenEXR

Makefile.am

INCLUDES = @ILMBASE_CXXFLAGS@ \
       -I$(top_builddir)  \
       -I$(top_srcdir)/config

Это фактически уменьшило мое понимание того, в чем может быть проблема.

Обновление 2: Итак, переопределив некоторые переменные в make-файле, я обнаружил, что вместо $(CXXCOMPILE) make, похоже, запускает $(CXX) $(CXXFLAGS), с CXXFLAGS равным -g -O2. Хорошо, я понятия не имею, как ему удается запустить $(CXX) $(CXXFLAGS), если эта комбинация не используется нигде в make-файле, кроме $(CXXCOMPILE), который не запускается. Я могу добавить свой -I к CXXFLAGS, но у меня есть ощущение, что потребуется гораздо больше дополнений, поэтому я бы предпочел найти основную причину проблемы.

(Я не уверен, является ли это вопросом о суперпользователе или переполнении стека, потому что мои навыки разработчика в C ++ / Linux практически отсутствуют.)

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

Дополнительные каталоги включения обычно указываются в CPPFLAGS. Попробуйте запустить ./configure CPPFLAGS=-I/usr/local/include/OpenEXR и заново запустить make.

0 голосов
/ 05 сентября 2010

Вам нужно как-то добавить -I/usr/local/include/OpenEXR в командную строку компилятора.Это может быть простым делом:

CFLAGS=-I/usr/local/include/OpenEXR make
...