国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

淺談Linux中ldconfig和ldd的用法

2024-09-05 23:03:12
字體:
來源:轉載
供稿:網友

ldd 查看程序依賴庫

ldd

作用:用來查看程式運行所需的共享庫,常用來解決程式因缺少某個庫文件而不能運行的一些問題。

示例:查看test程序運行所依賴的庫:

/opt/app/todeav1/test$ldd test
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003996400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039a5600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003995800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003995400000)

•第一列:程序需要依賴什么庫

•第二列: 系統提供的與程序需要的庫所對應的庫

•第三列:庫加載的開始地址

通過上面的信息,我們可以得到以下幾個信息:

1.通過對比第一列和第二列,我們可以分析程序需要依賴的庫和系統實際提供的,是否相匹配

2.通過觀察第三列,我們可以知道在當前的庫中的符號在對應的進程的地址空間中的開始位置

如果依賴的某個庫找不到,通過這個命令可以迅速定位問題所在;

注解

原理: ldd不是個可執行程式,而只是個shell腳本; ldd顯示可執行模塊的dependency的工作原理,其實質是通過ld-linux.so(elf動態庫的裝載器)來實現的。ld-linux.so模塊會先于executable模塊程式工作,并獲得控制權,因此當上述的那些環境變量被設置時,ld-linux.so選擇了顯示可執行模塊的dependency。

--------------------------------------------------------------

ldconfig是一個動態鏈接庫管理命令,為了讓動態鏈接庫為系統所共享,還需運行動態鏈接庫的管理命令–ldconfig。 ldconfig 命令的用途,主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態 鏈接庫(格式如前介紹,lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認為 /etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表.

linux下的共享庫機制采用了類似于高速緩存的機制,將庫信息保存在/etc/ld.so.cache里邊。

程序連接的時候首先從這個文件里邊查找,然后再到ld.so.conf的路徑里邊去詳細找。

這就是為什么修改了ld.so.conf要重新運行一下ldconfig的原因

補充一點,ldconfig在/sbin里面。

ldconfig幾個需要注意的地方

1. 往/lib和/usr/lib里面加東西,是不用修改/etc/ld.so.conf的,但是完了之后要調一下ldconfig,不然這個library會找不到

2. 想往上面兩個目錄以外加東西的時候,一定要修改/etc/ld.so.conf,然后再調用ldconfig,不然也會找不到

比如安裝了一個mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql /lib下面,這時 就需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存過后ldconfig一下,新的library才能在 程序運行時被找到。

3. 如果想在這兩個目錄以外放lib,但是又不想在/etc/ld.so.conf中加東西(或者是沒有權限加東西)。那也可以,就是export一個全局變 量LD_LIBRARY_PATH,然后運行程序的時候就會去這個目錄中找library。一般來講這只是一種臨時的解決方案,在沒有權限或臨時需要的時 候使用。

4. ldconfig做的這些東西都與運行程序時有關,跟編譯時一點關系都沒有。編譯的時候還是該加-L就得加,不要混淆了。

5. 總之,就是不管做了什么關于library的變動后,最好都ldconfig一下,不然會出現一些意想不到的結果。不會花太多的時間,但是會省很多的事。

以上這篇淺談Linux中ldconfig和ldd的用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 常山县| 固镇县| 土默特右旗| 揭东县| 兰溪市| 四川省| 郧西县| 宁国市| 克拉玛依市| 咸阳市| 青海省| 辽阳县| 渭源县| 大安市| 江陵县| 潮安县| 常熟市| 五大连池市| 隆回县| 寻乌县| 林西县| 甘德县| 旺苍县| 尤溪县| 周至县| 玉山县| 繁昌县| 舟曲县| 西藏| 泰宁县| 嫩江县| 巫山县| 岳池县| 安多县| 阿图什市| 兰州市| 沂南县| 中西区| 鹰潭市| 容城县| 炎陵县|