日期:2014-05-16  浏览次数:20703 次

编译时链接我的动态库出现错误:undefined reference to ‘XXXXXX’
如题,之前没问题,编译了自己的动态库,又编译自己的测试程序,能链接到这个动态库。
可是,今天,我又重新编译了自己的动态库, 到了编译测试程序的时候,gcc居然报错,错误信息大致这样:
undefined reference to ‘XXXXXX’
也就是说动态库里没有这个程序使用的函数。
但是,我用mn命令列出动态库的符号清单,清单中,我看到了这些被报错不存在的函数名。
这是什么情况?

------解决方案--------------------
库的位置放对了没?
------解决方案--------------------
库的名字改一个试试看,怀疑有重名的库
------解决方案--------------------
undefined reference to ‘XXXXXX’
没定义就是没定义,mn有符号,并不代表能找到.
要看库怎么给应用提供接口,测试程序通过什么来调用.
------解决方案--------------------
也许是。。。。。。
探讨
原来编译命令不能这样:
gcc -lXXXX -o test test.o

要改成:
gcc -o test test.o -lXXXX
这样就没错了。

之前一直使用前面那种命令,都没问题,难道是由于gcc版本的原因,导致了现在这个问题?

------解决方案--------------------
你确定你的动态库已经在内存中运行了吗?

如果已经正确运行了,应该是没有问题的.