1.在了解/etc/ld.so.conf.d/目錄下文件的作用之前橙弱,先介紹下程序運行是加載動態(tài)庫的幾種方法:
第一種岩睁,通過ldconfig命令
ldconfig命令的用途, 主要是在默認搜尋目錄(/lib和/usr/lib)以及動態(tài)庫配置文件/etc/ld.so.conf內所列的目錄下,
搜索出可共享的動態(tài)鏈接庫(格式如lib*.so*),
進而創(chuàng)建出動態(tài)裝入程序(ld.so)所需的連接和緩存文件.
緩存文件默認為/etc/ld.so.cache, 此文件保存已排好序的動態(tài)鏈接庫名字列表.
這里面涉及到的關鍵內容有命令:ldconfig钞脂,配置文件目錄:/etc/ld.so.conf.d,
配置文件在/etc/ld.so.conf內容由用戶編輯捕儒,緩沖文件/etc/ld.so.cache冰啃。
下面舉個例子,比如你在部署軟件時肋层,有些動態(tài)庫安裝在/usr/local/gcc9/lib64目錄下亿笤,可以通過如下方法實現(xiàn),
1)配置gcc.conf文件栋猖,里面加一行/usr/local/gcc9/lib64,然后將該文件放到/etc/ld.so.conf.d目錄下汪榔;
2)執(zhí)行 ldconfig命令
之后程序運行時蒲拉,會自動增加在/usr/local/gcc9/lib64目錄中搜索動態(tài)庫。
第二種痴腌,通過LD_LIBRARY_PATH環(huán)境變量
可以通過在.bashrc或者.cshrc中配置該環(huán)境變量雌团,LD_LIBRARY_PATH的意思是告訴loader在哪些目錄中可以找到共享庫.
可以設置多個搜索目錄, 這些目錄之間用冒號分隔開.
同樣是上面的例子,可以通過以上的方法來實現(xiàn)
在.bashrc或.cshrc中增加一行士聪,
export LD_LIBRARY_PATH = /usr/local/gcc9/lib64:$LD_LIBRARY_PATH
即可锦援。
第三種,通過編譯選項-Wl剥悟, -rpath指定動態(tài)搜索的路徑
-Wl選項告訴編譯器將后面的參數(shù)傳遞給鏈接器灵寺。
通過上面的介紹曼库,對/etc/ld.so.conf.d/的作用就比較清晰了。