


linux動態鏈接庫的搜索路徑配置
添加時間:2011-4-23
添加:
admin
在linux下一個二進制程序通常都會依賴于系統的動態鏈接庫,它的原理是當程序運行的時候,動態地找到動態庫并將其加載到自己的進程空間中去,本篇就來介紹一下動態庫的搜索機制。
linux鏈接器為ld,它會在/etc/ld.so.conf文件中列出的目錄中查找動態庫,我本機的ld.so.conf文件內容如下:
include ld.so.conf.d/*.conf
可以看到,ld.so.conf支持用include指令引入其他配置,這樣以來各個軟件在安裝時可以獨立地添加庫搜索路徑,例如:
[leconte@localhost ~]$ ls /etc/ld.so.conf.d/ qt-i386.conf xorg-x11-i386.conf
可以看到qt和xorg分別將各自的配置放在ld.so.conf.d目錄下,打開qt-i386.conf:
[leconte@localhost ~]$ cat /etc/ld.so.conf.d/qt-i386.conf /usr/lib/qt-3.3/lib
可以看到,qt將/usr/lib/qt-3.3/lib/目錄加入搜索路徑。
另外,需要注意的是linux鏈接器在加載程序的時候不會總是先去解析一遍這些配置文件,ldconfig這個程序會事先負責解析ld.so.conf中的配置,將解析結果緩存在文件/etc/ld.so.cache中,鏈接器每次只需讀取cache數據即可,這樣可以大大加快加載的速度。
因此,每當你修改了ld.so.conf之后,都要記得手工執行一次ldconfig生成ld.so.cache,否則你的修改將不會生效。細心的話你會發現很多rpm包和deb包在新增了ld配置之后都會自動執行一次ldconfig的。
此外,如果沒有在ld.so.conf中指定任何的路徑,linux鏈接器也會默認在/usr/lib/和/lib/下進行尋找。
關鍵字:/etc/ld.so.conf linux鏈接器
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解