I have a fat (32- and 64-bit) Intel binary called myBinary
that fails to run on another workstation running Mac OS X 10.8.2:
$ myBinary
dyld: lazy symbol binding failed: Symbol not found: __ZNSt8__detail15_List_node_base7_M_hookEPS0_
Referenced from: /usr/local/bin/myBinary
Expected in: /usr/lib/libstdc++.6.dylib
dyld: Symbol not found: __ZNSt8__detail15_List_node_base7_M_hookEPS0_
Referenced from: /usr/local/bin/myBinary
Expected in: /usr/lib/libstdc++.6.dylib
Trace/BPT trap: 5
I compiled it from a Mac OS X 10.8.2 workstation running GCC 4.7.2:
$ gcc --version
gcc (MacPorts gcc47 4.7.2_2+universal) 4.7.2
I ran nm
and the symbol is undefined:
$ nm /usr/local/bin/myBinary | grep __ZNSt8__detail15_List_node_base7_M_hookEPS0_
U __ZNSt8__detail15_List_node_base7_M_hookEPS0_
What did I miss or do wrong when compiling myBinary
? I'm not sure what I can do about a missing symbol in /usr/lib/libstdc++.6.dylib
—?should I have statically compiled the C++ library into myBinary
?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…