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