1 |
El dom, 29-05-2016 a las 01:58 +0800, Andrew Lowe escribió: |
2 |
> Hi all, |
3 |
> I'm attempting to build Blender, 2,7,6 but am running into a |
4 |
> problem |
5 |
> during linking. I am getting a series of errors referring to an, for |
6 |
> example: |
7 |
> |
8 |
> unresolved reference to 'Imf_2_1::Header::view[abi:cxx11]() const |
9 |
> |
10 |
I've hit this sort of errors a few times(libreoffice mainly), no need |
11 |
for blender experts. |
12 |
The problem is your when linking the libraries/binaries, it is trying |
13 |
to link code compiled with -std=c++11 and some library compiled with an |
14 |
older standard,and thus it the linker cannot find binary code that |
15 |
maches what your newly compiled programs wants. there was a news item |
16 |
about this, you should read/revisit it, named: |
17 |
Title GCC 5 Defaults to the New C++11 ABI |
18 |
Author Mike Frysinger <vapier@g.o> |
19 |
Posted 2015-10-22 |
20 |
Revision 2 |
21 |
|
22 |
The proposed solution is: |
23 |
(quote from the news item) |
24 |
For gentoolkit-0.3.1 or higher: |
25 |
# revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc |
26 |
|
27 |
For previous versions of gentoolkit: |
28 |
# revdep-rebuild --library 'libstdc\+\+\.so\.6' -- --exclude gcc |
29 |
|
30 |
But I've encountered some packages that weren't rebuild with that, so |
31 |
what I do is: search for the library that needs rebuild(hint e.g. for |
32 |
your case, eix imf) and then emerge -av1 that library, and try again |
33 |
rebuilding the package I wanted in the first place(blender for you). I |
34 |
say rebuild but I really just manually call ´ebuild $PORDTDIR/cat/pkg- |
35 |
ver' install as the portage user, and then package, and install it as a |
36 |
binary at the end, but how to do this is out of the scope of the |
37 |
interest of this thread. |
38 |
BTW, eix won't help you here, I tried it, so the next step is to find |
39 |
what provides the symbol 'Imf_2_1::Header::view', after some searches |
40 |
with find and then google, I arrived at opencv(though not 100% sure), |
41 |
so you might need to rebuild that and make sure(read the log) g++ is |
42 |
being called with std=c++11. tracking this sort of stuff might be |
43 |
tricky. |