symbol lookup error: xxx undefined symbol xxx

我在編譯一個小工程時,編譯過程並沒有報錯,但是在運行報瞭如下錯誤:
undefined symbol N2cv3Mat20updateContinuityFlagEv。解決此類問題的思路可以從如下幾個方面入手:

  1. 庫沒有正確連接,但如果是這個問題,我們在編譯時往往就會報錯。
  2. 庫的版本不對,比如我們使用的第三方庫其依賴的是OpenCV2,但是我們自己的工程使用的時OpenCV3,這時也會有這個問題。
  3. 最容易讓人忽略的一個情況時,雖然庫的版本都對應上了,但是路徑對應不上。那我的例子來說,我的一個依賴外部庫是libface_gpu.so,就是這個庫保存,因此我ldd libface_gpu.so,發現使用的是/usr/local/lib/libopencv_***.so.3.4。我自己編譯的小工程的可執行文件demo,當我ldd demo時發現../../lib/libopencv_***.so.3.4.我們發現兩者路徑不一致,因此我們現在要修改我們的makefile文件了,使兩者保持一致即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章