2015-05-10 4 views
0

У меня возникла проблема с присвоением значений структуре Imf :: Rgba, содержащей половину типов, как определено OpenEXR. По-видимому, существует ошибка компоновщика, касающаяся преобразования от float до половины.Ошибка компоновщика OpenEXR при назначении типа «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 

Я считаю, что это обычная проблема для окон и что OPENEXR_DLL необходимо определить. Однако это не работает, поскольку я компилирую OS X. Я попытался подключиться к libIlmImf.dylib и libIlmImf.a с тем же результатом. Используемая версия OpenEXR составляет 2.2.0 и устанавливается с использованием Homebrew.

ответ

1

Эти символы определены в half.h, который является частью IlmBase.

Необходимо связаться с libHalf.dylib.

+0

Это отлично работает, приветствует баф. – josh247

Смежные вопросы