0

cygwin (OpenEXR) で特定のライブラリをビルドしようとしていますが、次のエラーが発生します。

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

half.hを使用して参照されて#include <half.h>おり、実際には以前に正常に実行した別のライブラリの一部ですmake/make install

問題は - with を使用#includeする<>場合、プリプロセッサが指定されたファイルをどこで見つけると予想するかです。

(私はそれを で見つけたばかりですが/usr/local/include/OpenEXR、プリプロセッサができない理由がわかりません)。

更新:私も見つけました:

メイクファイル

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

Makefile.am

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

これにより、問題が何であるかについての私の理解が実際に減少しました。

更新 2:したがって、makefile でいくつかの変数を再定義することで、 make の代わりに が$(CXXCOMPILE)実行されているように見えること$(CXX) $(CXXFLAGS)CXXFLAGSわかりました-g -O2。OK、$(CXX) $(CXXFLAGS)この組み合わせが実行されていない以外のメイクファイルのどこにも使用されていない場合、どのように実行されるのかわかり$(CXXCOMPILE)ません。に追加できますが、さらに多くの追加-ICXXFLAGS必要になると感じているので、問題の根本原因を見つけたいと思います。

(C++/Linux の開発者スキルがほとんどないため、それがスーパー ユーザーなのかスタック オーバーフローなのかはわかりません。)

4

2 に答える 2

1

通常、追加のインクルード ディレクトリは で指定されCPPFLAGSます。./configure CPPFLAGS=-I/usr/local/include/OpenEXRを実行して再実行してみてくださいmake

于 2010-09-06T01:04:34.567 に答える
0

-I/usr/local/include/OpenEXR何らかの方法でコンパイラ コマンド ラインに追加する必要があります。それは簡単なことかもしれません:

CFLAGS=-I/usr/local/include/OpenEXR make
于 2010-09-05T09:31:22.197 に答える