我知道LD_LIBRARY_PATH
是一個環境變量,其中鏈接器將查找與可執行代碼鏈接的共享庫(其中包含共享對象)。LD代表* unix上的LD_LIBRARY_PATH變量代表什麼?
但是,LD代表什麼?是否用於加載?或列表目錄?
我知道LD_LIBRARY_PATH
是一個環境變量,其中鏈接器將查找與可執行代碼鏈接的共享庫(其中包含共享對象)。LD代表* unix上的LD_LIBRARY_PATH變量代表什麼?
但是,LD代表什麼?是否用於加載?或列表目錄?
接頭。 * nix鏈接器被稱爲ld。當具有動態庫的程序被鏈接時,鏈接器會添加額外的代碼來查找動態庫來解析不是靜態鏈接的符號。通常這個代碼在/ lib和/ usr/lib中查找。 LD_LIBRARY_PATH是要搜索的其他目錄的冒號分隔列表。
「ldd」是一個方便的程序,用於查看庫的位置:例如,嘗試「ldd/bin/ls」。儘管如此,它也可能意味着「裝載者」。 ;-)
編輯:
作爲一個(半)有趣的邊注:我認爲動態庫會自動消失的一天。當磁盤空間和系統內存不足時,需要它們。使用它們的性能受到影響(即符號需要被解析並且目標代碼被編輯)。在3GB內存和7秒啓動時間的現代時代,回到靜態鏈接可能是適當的。
除了每個C++程序都會奇蹟般地增長到3MB。 ;-)
LD_LIBRARY_PATH - 代表裝載庫路徑或有時被稱爲LOADER LIBRARY PATH
非常感謝:d –
現代的Linux系統上的連接器本身可能會/lib/ld-linux.so .2或類似的東西。如果你從沒有參數的命令行運行它,你會得到一個很好的幫助信息。 – bdk
我懷疑動態庫存在任何地方 - 它能夠通過替換一個.so文件來修補安全漏洞,對重建操作系統中使用相關庫的每個應用程序都很有幫助。 – bdonlan