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 命令


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM