默認情況下,編譯器只會使用/lib和/usr/lib這兩個目錄下的庫文件,通常通過源碼包進行安裝時,如果不指定--prefix,會將庫安裝在/usr/local/lib目錄下;當運行程序需要鏈接動態庫時,提示找不到相關的.so庫,會報錯。也就是說,/usr/local/lib目錄不在系統默認的庫搜索目錄中,需要將目錄加進去。
1、首先打開/etc/ld.so.conf文件
sudo vim /etc/ld.so.conf
2、加入動態庫文件所在的目錄:執行sudo vim /etc/ld.so.conf后,在"include ld.so.conf.d/*.conf"下方增加"/usr/local/lib"。
3、保存后,在命令行終端執行:sudo /sbin/ldconfig -v;其作用是將文件/etc/ld.so.conf列出的路徑下的庫文件緩存到/etc/ld.so.cache以供使用,因此當安裝完一些庫文件,或者修改/etc/ld.so.conf增加了庫的新搜索路徑,需要運行一下ldconfig,使所有的庫文件都被緩存到文件/etc/ld.so.cache中,如果沒做,可能會找不到剛安裝的庫。
經過以上三個步驟,"error while loading shared libraries"的問題通常情況下就可以解決了。
