我的可执行文件链接到多个库(见下文),但在运行时崩溃时出现此错误:
symbol lookup error: bin.gcc/TestHarmonic: undefined symbol: _ZN3fmm8harmonic7details6helperILi2ENS0_6U_typeEdE5set_qEPdPKddd
可执行文件是使用(在linux上运行gcc 4.8.1)
g++ -o bin.gcc/TestHarmonic obj.gcc/TestHarmonic.o -Llib/ -lfmm.gcc -Lutils2/lib -lWDutils2.gcc -ltbb -lCGAL -lm
有问题的符号实际上应该是:
nm lib/libfmm.gcc.so | grep _ZN3fmm8harmonic7details6helperILi2ENS0_6U_typeEdE5set_qEPdPKddd
000000000a2fff0 W _ZN3fmm8harmonic7details6helperILi2ENS0_6U_typeEdE5set_qEPdPKddd
图书馆lib/libfmm.gcc.so
是通过
g++ several_files.o -shared -Lutils2/lib -lWDutils2.gcc -ltbb -lCGAL -lm -o lib/libfmm.gcc.so
如果我删除它但保留静态版本lib/libfmm.gcc.a
并再次构建可执行文件,则可行。这里可能有什么问题,我该如何解决这个问题?