尽管符号存在于链接库中,但符号查找错误

时间:2014-09-30 18:19:56

标签: c++ gcc shared-libraries

我的可执行文件链接到多个库(见下文),但在运行时崩溃时出现此错误:

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并再次构建可执行文件,则可行。这里可能有什么问题,我该如何解决这个问题?

0 个答案:

没有答案