look up error: undefined symbol:......解决过程

今天遇到个很郁闷的问题,运行程序时报错:look up error: undefined symbol:...

首先运行时报错找不到,一般就是动态库里没有这个符号。所以我用 nm命令 并用管道结合grep命令(nm .so | grep 'pattern') 查找了下那个未定义符号。结果发现,动态库里有这个符号,这里T表示是在代码段。

然后我怀疑可能加载的不是这个库,可能是老版本的库,于是我又用 ldd 命令执行可执行文件,查看运行时程序加载了哪些库,(这里也可以用管道+grep),结果发现加载的还就是最新的库!

简直了!到底什么原因呢!

待续。。。

==============================================

找到原因,就是那个动态库没链接上!但是我用 ldd 命令明明可以查看到链上了这个库。。。。。简直了!就是cmake_current_binary_dir这个内置变量手残打错了!导致库没链上,cmake_current_binary_dir指的就是cmake的执行目录,及makefile所在目录(build目录)

还需继续深究。。。。。ldd 命令

posted on 2016-11-27 20:21  d神  阅读(17680)  评论(0编辑  收藏  举报

导航