符号查找错误:未定义符号:

时间:2015-07-31 18:58:55

标签: c++ linux gcc undefined-symbol

我有两个库,lib1.solib2.solib1.so有一个函数func1libs2.so使用此函数func1

编译没有问题。

但是当用libs2.so开始一个程序时,它说,func1是一个未定义的符号。 Wenn使用ldd工具,然后指向存在的文件。好的,我输入了命令nm -D lib1.so | grep -i 'func1''nm -D lib2.so | grep -i 'func1'

有一个小区别:lib1.so命令显示类似

的内容
00000000003e393c T XYZfunc1ZXYmm

libs2.so命令显示此

U XYZfunc1ZXY

据我所知,U的{​​{1}}代表lib2.so。 1)我是对的吗?我也可以看到,在第一个输出中,最后有一个Undefined。我想这个:只要mm是成员func1的一部分,就会添加到符号中。 2)这是正确的吗?如果是,为什么mm找不到符号?

3)我已经没有想法,如何解决这个问题。有没有人有想法?

4)可能还有另一个问题:让我们假设我编译了lib2.so,这取决于lib2.so,就像在这个例子中一样。编译lib1.so后,我重新编译libs2.so,更改了一些更小的,但所有导出的符号都是相同的。可能会出现像我上面描述的问题吗?

0 个答案:

没有答案