Linux下的庫操作工具-nm、ar、ldd、ldconfig和ld.so
1、nm [options] file 列出file中的所有符號
[option]
-c 將符號轉化為用戶級的名字
-s 當用於.a文件即靜態庫時,輸出把符號名映射到定義該符號的模塊或成員名的索引
-u 顯示在file外定義的符號或沒有定義的符號
-l 顯示每個符號的行號,或為定義符號的重定義項
2、ar {dmpqrtx} [member] archive file 用於操作高度結構化的存檔文件(.a)
[options]
-c 創建存檔文件
-s 創建或升級從符號到定義他們的成員之間的交叉索引映射表
-r 替換archive中的同名文件或添加新文件
-q 不檢查而直接添加文件到存檔文件的末尾
ranlib [-v|-V] file 的作用跟ar -s file相同
3、ldd [options] file 列出file運行所需的共享庫
[options]
-d 執行重定位並報告所有丟失的函數
-r 執行對函數和對象的重定位並報告丟失的任何函數或對象
4、 ldconfig [options] [libs] 決定位於目錄/usr/lib和/lib下的共享庫所需的運行的鏈接,這些鏈接由[libs]指定並被保存到/etc/ld.so.conf中
[options]
-p 打印文件/etc/ld.so.conf的內容
-v 更新/etc/ld.so.conf
5、 ld.so 動態鏈接/加載器
ld.so使用的兩個環境變量
$LD_LIBRARY_PATH 告訴ld.so去哪裡查找保存在非標准目錄下的共享庫,冒號分隔,對應文件/etc/ld.so.conf
$LD_PRELOAD告訴ld.so用戶指定的在所有庫加載之前加載的庫所在的目錄,空格分隔,對應文件/etc/ld.so.preload