0

OpenEXR で定義されている半分の型を含む Imf::Rgba 構造体に値を代入する際に問題が発生しています。float から half への変換に関するリンカ エラーがあるようです。

Linking CXX executable graphics-env
Undefined symbols for architecture x86_64:
  "half::_eLut", referenced from:
      half::half(float) in main.cpp.o
  "half::convert(int)", referenced from:
      half::half(float) in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [graphics-env] Error 1
make[1]: *** [CMakeFiles/graphics-env.dir/all] Error 2
make: *** [all] Error 2

これは Windows でよくある問題であり、OPENEXR_DLL を定義する必要があると思います。ただし、OS X でコンパイルしているため、これは機能しません。libIlmImf.dylib と libIlmImf.a にリンクしようとしましたが、同じ結果が得られました。使用されている OpenEXR のバージョンは 2.2.0 で、Homebrew を使用してインストールされています。

4

1 に答える 1

2

これらのシンボルは、half.hの一部である で定義されていIlmBaseます。

にリンクする必要がありlibHalf.dylibます。

于 2015-05-10T16:44:44.350 に答える