Я пытаюсь собрать определенную библиотеку под 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 практически отсутствуют.)