linux的excutable在執行的時候缺省是先搜索/lib和/usr/lib這兩個目錄,而後按照ld.so.conf裏面的配置搜索絕對路徑,linux缺省是不會在當前目錄搜索動態庫的。windows加載動態庫的時候,缺省是首先加載本地目錄下的動態庫,而後再搜索windows/system和windows/system32目錄。linux
windows的動態庫搜索順序,雖然有可能會形成潛在的混亂,可是對於開發和測試無疑是比較方便的,尤爲是debug和release版本的動態庫須要常常切換進行測試的時候。linux的動態庫搜索順序雖然能夠說成是比較嚴謹,可是相對來講也比較呆板,有時候會形成不便。ubuntu
ldd LB //查看進程依賴的動態庫windows
其實,linux也能夠支持「加載當前目錄的動態庫」。只要設置合適的環境變量LD_LIBRARY_PATH就能夠了。設置方法有如下三種:
bash
一、臨時修改,log out以後就失效
在terminal中執行:export LD_LIBRARY_PATH=./
測試
二、讓當前賬號之後都優先加載當前目錄的動態庫
在Red Hat中修改~/.bash_profile在文件末尾加上兩行: LD_LIBRARY_PATH=./ 和 export LD_LIBRARY_PATH debug
(而在ubuntu中要修改的文件的名稱是~/.profile)進程
三、讓全部賬號今後都優先加載當前目錄的動態庫
修改/etc/profile在文件末尾加上兩行: LD_LIBRARY_PATH=./ 和 export LD_LIBRARY_PATH
PS:修改ld.so.conf不能達到咱們的目的,由於ld.so.conf只支持絕對路徑。開發