3

OpenEXR を cygwin でコンパイルしようとしていますが、うまくいきません。

私がこれまでに行ったこと:

cd ilmbase-X.X.X
./configure
make
make install
make check

OpenEXR が必要とするため、これが必要です。正常に実行され、/usr/localbinに 、include\OpenEXRおよびの 3 つのフォルダーが作成されますlib

次に、OpenEXR に進みます。これが私が行うことです。

cd openexr-X.X.X
./configure

すべてが正常に実行makeされますが、実行すると次のエラーが表示されます。

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

なぜこれが起こるのかわかりませんが、これを行うことで回避できます:

./configure CPPFLAGS=-I/usr/local/include/OpenEXR

しかし、その後、make別のエラーが発生すると、ここで立ち往生します。

/usr/local/include/OpenEXR/half.h:511: undefined reference to `half::_toFloat'
/usr/local/include/OpenEXR/half.h:511: undefined reference to `half::_toFloat'
/usr/local/include/OpenEXR/half.h:481: undefined reference to `half::_eLut'
/usr/local/include/OpenEXR/half.h:511: undefined reference to `half::_toFloat'
/usr/local/include/OpenEXR/half.h:511: undefined reference to `half::_toFloat'
/usr/local/include/OpenEXR/half.h:481: undefined reference to `half::_eLut'
/usr/local/include/OpenEXR/half.h:499: undefined reference to `half::convert(int)'
/usr/local/include/OpenEXR/half.h:481: undefined reference to `half::_eLut'
/usr/local/include/OpenEXR/half.h:499: undefined reference to `half::convert(int)'
/usr/local/include/OpenEXR/half.h:499: undefined reference to `half::convert(int)'
collect2: ld returned 1 exit status
<builtin>: recipe for target `b44ExpLogTable' failed
make[1]: *** [b44ExpLogTable] Error 1
make[1]: Leaving directory `/home/Andre/openexr-1.6.1/IlmImf'
Makefile:313: recipe for target `all-recursive' failed
make: *** [all-recursive] Error 1

これは誰にでも起こりますか?私はすでに多くのことをグーグルで調べましたが、解決策が見つかりません。誰かが助けてくれることを願っています。

4

1 に答える 1

6

これは少し古いことは知っていますが、-Iスイッチを理解するのに役立ちました。

それを手に入れたら、あなたの問題に対する答えを見つけました。インクルード ファイルを提供していますが、ライブラリ自体は提供していないため、undefined reference. 使用する:

./configure CPPFLAGS="-I/usr/local/include/OpenEXR -L/usr/local/bin -lHalf-6"

-Lライブラリ検索ディレクトリを-l提供し、プログラムにリンクするライブラリを提供します。-lHalf-6はファイルを示します/usr/local/bin/cygHalf-6.dll

なぜ図書館があるのか​​はわかりませんが、図書館はあります。

また、memset で別の問題が発生する場合があります。これは、http: //lists.gnu.org/archive/html/openexr-user/2011-07/msg00002.htmlで解決できます。

于 2012-03-14T05:58:44.387 に答える