學(xué)習(xí)手冊:ld-Linux用法
經(jīng)過長時間學(xué)習(xí)Linux,遇到了很多問題,也解決了了一些問題,于是和大家分享一下ld-Linux用法,看完本文你肯定有對于ld-Linux用法有不少收獲,希望本文能教會你更多東西。ld-Linux有兩種用法,間接調(diào)用和直接調(diào)用。
間接調(diào)用時,連接器會把ld-Linux 的執(zhí)行路徑嵌入到可執(zhí)行文件中,如elf文件時,ld-Linux 被放在.interp段中。
直接調(diào)用時,在命令行下輸入/lib/ld-Linux -so.* [選項] [可執(zhí)行程序] [程序參數(shù)]
ld-Linux 按照如下順序搜索可執(zhí)行程序需要的共享庫:
1. (只針對elf文件) 可執(zhí)行程序中如果有DT_RPATH或DT_RUNPATH段,則使用這兩個段中指定的搜索目錄。
2.使用環(huán)境變量LD_LIBRARY_PATH指定的搜索目錄
3.使用/etc/ld.so.cache中的搜索目錄,但如果可執(zhí)行程序在連接時候添加了-z nodeflib選項,則不使用。
4.使用默認(rèn)的庫目錄,/lib /usr/lib,如果添加了-z nodeflib,則不使用。
編譯可執(zhí)行程序時,可以安如下方法指定共享庫的目錄
gcc -Xlinker -rpath=DIR -o exe exe.c
編譯完后,運行readelf -d exe可以看到如下段
0x0000000f (RPATH) Library rpath: [DIR]
以上就是ld-Linux用法。
【編輯推薦】