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是一個動態鏈接庫管理命令,為了讓動態鏈接庫為系統所共享,還需運行動態鏈接庫的管理命令 主站蜘蛛池模板: 秦安县| 简阳市| 任丘市| 凤山县| 霸州市| 门源| 乡城县| 定日县| 日土县| 天长市| 库车县| 无为县| 武隆县| 白朗县| 天峻县| 石家庄市| 甘谷县| 乐业县| 宁明县| 荔波县| 宁津县| 灵璧县| 肥乡县| 古丈县| 莆田市| 工布江达县| 临朐县| 屯门区| 慈溪市| 清涧县| 绥中县| 襄樊市| 甘泉县| 云南省| 德钦县| 阿城市| 咸阳市| 裕民县| 靖州| 河津市| 湖北省|