1 |
On Mon, 26 Dec 2016 21:09:08 +0100, lee wrote: |
2 |
|
3 |
> Hi, |
4 |
> |
5 |
> there are some things that refuse to compile. One of them is |
6 |
> openimageio. |
7 |
> |
8 |
> Is this a bug, or am I missing something? Do I need to update something |
9 |
> else first? |
10 |
|
11 |
The latter, sort of. The error in question.. |
12 |
|
13 |
[..] |
14 |
> | [100%] Linking CXX executable oiiotool |
15 |
> | cd /var/tmp/portage/media-libs/openimageio-1.6.13/work/openimageio-1.6.13_build/src/oiiotool && /usr/bin/cmake -E cmake_link_script CMakeFiles/oiiotool.dir/link.txt --verbose=1 |
16 |
> | ccache /usr/bin/x86_64-pc-linux-gnu-g++ -O2 -pipe -march=westmere -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -maes -mpclmul -mpopcnt -msse4.2 -msse4.1 -mfxsr --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-s |
17 |
> | ize=12288 -mtune=westmere -fomit-frame-pointer -fno-stack-protector -Wl,-O1 -Wl,--as-needed CMakeFiles/oiiotool.dir/oiiotool.cpp.o CMakeFiles/oiiotool.dir/diff.cpp.o CMakeFiles/oiiotool.dir/imagerec.cpp.o CMakeFiles/oiiotool.dir/printi |
18 |
> | nfo.cpp.o -o oiiotool -rdynamic ../libOpenImageIO/libOpenImageIO.so.1.6.13 -lboost_filesystem-mt -lboost_regex-mt -lboost_system-mt -lboost_thread-mt -lboost_chrono-mt -lboost_date_time-mt -lboost_atomic-mt -lrt -ldl -lssl -lcrypto -lfre |
19 |
> | etype -lpng -lz -ltiff -ljpeg -lIlmImf -lImath -lIex -lHalf -lIlmThread -lpthread -lopenjpeg -lwebp -lgif -lz -ltiff -ljpeg -lIlmImf -lImath -lIex -lHalf -lIlmThread -lpthread -lopenjpeg -lwebp -lgif -lpugixml -Wl,-rpath,/var/tmp/portage/ |
20 |
> | media-libs/openimageio-1.6.13/work/openimageio-1.6.13_build/src/libOpenImageIO: |
21 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::TypedAttribute<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std:: |
22 |
> | char_traits<char>, std::allocator<char> > > > >::writeValueTo(Imf_2_1::OStream&, int) const' |
23 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::TypedAttribute<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::readValueFrom(Imf_2_1::IStream&, int, int)' |
24 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::Header::type[abi:cxx11]() const' |
25 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::TypedAttribute<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std:: |
26 |
> | char_traits<char>, std::allocator<char> > > > >::readValueFrom(Imf_2_1::IStream&, int, int)' |
27 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::TypedAttribute<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::staticTypeName()' |
28 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::TypedAttribute<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std:: |
29 |
> | char_traits<char>, std::allocator<char> > > > >::staticTypeName()' |
30 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::Header::name[abi:cxx11]() const' |
31 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::Header::setType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' |
32 |
> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::TypedAttribute<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::writeValueTo(Imf_2_1::OStream&, int) const' |
33 |
> | collect2: error: ld returned 1 exit status |
34 |
[..] |
35 |
|
36 |
..indicates a mismatch in C++11 ABI which changed in gcc5. What happens is that one the |
37 |
dependencies of openimageio was built against the old C++11 std::string ABI (hence the |
38 |
link errors), and needs to be rebuilt. It looks to be "Imf" aka libIlmImf, |
39 |
whatever that is. Try to rebuild it with --oneshot and it should work. |
40 |
If a similar error pops up for a different dependency, repeat. :) |
41 |
|
42 |
-h |