slam14講ch6,運行時找不到共享庫


安裝好g2o,編譯通過slam14講ch6里g2o優化代碼,但是運行時報錯。

/home/ljj/workspace/my_slambook_ws/ch6/g2o_curve_fitting/build-g2o_curve_fitting–Debug/curve_fitting: error while loading shared libraries: libg2o_core.so: cannot open shared object file: No such file or directory

網上博客說,“發現問題的原因是在默認情況下,編譯器只會使用/lib和/usr/lib這兩個目錄下的庫文件,通過源碼包進行安裝時,如果不指定–prefix會將庫安裝在/usr/local目錄下,而又沒有在文件/etc/ld.so.conf中添加 /usr/local/lib這個目錄。這樣雖然安裝了源碼包,但是使用時仍然找不到相關的.so庫,就會報錯。也就是說系統不知道安裝了源碼包。”
網絡上的解決方法是在/etc/ld.so.conf里添加絕對路徑/usr/local/lib。

sudo gedit /etc/ld.so.conf

將/usr/local/lib添加到下一行
“之后,執行ldconfig(這一步是必須的,目的是利用ldconfig執行文件將 /etc/ld.so.conf的數據讀入高速緩存中)。”

sudo /sbin/ldconfig

參考

http://www.cnblogs.com/gaoxiang12/p/4770813.html
http://blog.csdn.net/keyuanl/article/details/75231438
http://blog.csdn.net/oathevil/article/details/13564213 介紹ldconfig文件


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com