Linux 動態連接加載器 ld-linux用法
來源:程序員人生 發布時間:2013-11-01 06:52:57 閱讀次數:2862次
ld-linux有兩種用法,間接調用和直接調用。
間接調用時,連接器會把ld-linux的執行路徑嵌入到可執行文件中,如elf文件時,ld-linux被放在.interp段中。
直接調用時,在命令行下輸入/lib/ld-linux-so.* [選項] [可執行程序] [程序參數]
ld-linux按照如下順序搜索可執行程序需要的共享庫:
1. (只針對elf文件) 可執行程序中如果有DT_RPATH或DT_RUNPATH段,則使用這兩個段中指定的搜索目錄。
2.使用環境變量LD_LIBRARY_PATH指定的搜索目錄
3.使用/etc/ld.so.cache中的搜索目錄,但如果可執行程序在連接時候添加了-z nodeflib選項,則不使用。
4.使用默認的庫目錄,/lib /usr/lib,如果添加了-z nodeflib,則不使用。
編譯可執行程序時,可以安如下方法指定共享庫的目錄
gcc -Xlinker -rpath=DIR -o exe exe.c
編譯完后,運行readelf -d exe可以看到如下段
0x0000000f (RPATH) Library rpath: [DIR]
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈