轉載地址:https://blog.csdn.net/zorelemn/article/details/52596293,做了部分修改
一、庫文件的搜索路徑:
1、在配置文件/etc/ld.so.conf中指定動態庫搜索路徑(需要添加其它庫文件的路徑,在文件的最后添加具體的路徑即可 [ 如:/usr/local/lib ],添加后保存退出,然后在命令行ldconfig
2、通過環境變量LD_LIBRARY_PATH指定動態庫搜索路徑(當通過該環境變量指定多個動態庫搜索路徑時,路徑之間用冒號":"分隔)
3、在編譯目標代碼時指定該程序的動態庫搜索路徑(還可以在編譯目標代碼時指定程序的動態庫搜索路徑。 這是通過gcc 的參數"-Wl,-rpath,"指定,當指定多個動態庫搜索路徑時,路徑之間用冒號":"分隔,如:-Wl,-rpath=./表示搜索程序所在目錄,注意程序加載某個庫的名稱是寫進了二進制的,如libxxx.so.3,然后Linux看到這個先從./里找看有沒有,如果編譯時沒有指定rpath,
據說還可以通過工具對已編譯的程序或庫修改它們的rpath:patchelf --set-rpath /opt/my-libs/lib:/foo/lib:./ program)
4、默認的動態庫搜索路徑/lib
5、默認的動態庫搜索路徑/usr/lib
搜索的先后順序是:
1.編譯目標代碼時指定的動態庫搜索路徑;
2.環境變量LD_LIBRARY_PATH指定的動態庫搜索路徑;
3.配置文件/etc/ld.so.conf中指定的動態庫搜索路徑;
4.默認的動態庫搜索路徑/lib;
5.默認的動態庫搜索路徑/usr/lib。
二、Shell可執行程序命令文件搜索路徑:
1.查看所有的搜索路徑:echo $PATH
2.添加新的路徑:
1)只對當前shell窗口有效:
export PATH=$PATH:/new path
2)對所有窗口有效:
修改當前用戶的.bash_profile文件,在PATH=$PATH……后添加":/new path";
保存退出后,需要在當前窗口中執行". .bash_profile",更新配置,之后用echo $PATH顯示更新后的路徑,可以看到新加入的路徑;
注意:在重新登錄前所有新打開的shell窗口要用到新的路徑都需要執行". .bash_profile",更新配置,因為.bash_profile文件的內容在用戶登錄時就讀取了.