我正在尝试在 cygwin (OpenEXR) 下构建某个库,但出现以下错误:
b44ExpLogTable.cpp:52:18: error: half.h: No such file or directory
half.h
使用#include <half.h>
, 引用,实际上是我make/make install
之前成功运行的另一个库的一部分。
问题是——当使用#include
with时<>
,预处理器期望在哪里找到指定的文件?
(我刚刚在 中找到它/usr/local/include/OpenEXR
,但我不知道为什么预处理器不能)。
更新:我还发现:
生成文件
ILMBASE_CXXFLAGS = -I/usr/local/include/OpenEXR
生成文件.am
INCLUDES = @ILMBASE_CXXFLAGS@ \
-I$(top_builddir) \
-I$(top_srcdir)/config
这实际上降低了我对问题可能是什么的理解。
更新 2:因此,通过在 makefile 中重新定义一些变量,我发现$(CXXCOMPILE)
make 似乎不是 run $(CXX) $(CXXFLAGS)
,CXXFLAGS
而是只是-g -O2
. 好的,我不知道$(CXX) $(CXXFLAGS)
如果这个组合在makefile中的任何地方都没有使用,除了$(CXXCOMPILE)
没有运行的地方,它是如何运行的。我可以添加我-I
的,CXXFLAGS
但我觉得需要更多的添加,所以我更愿意找到问题的根本原因。
(我不确定这是超级用户问题还是堆栈溢出问题,因为我在 C++/Linux 方面的开发技能几乎不存在。)