Linker
有沒有辦法檢查 .so 是否已使用 -Bsymbolic-functions 標誌編譯?
我的應用程序使用動態載入自定義程式碼
dlopen
。對於常用符號,預設使用全域符號表。但是,我想提供這樣的功能——如果使用者將他們的 so 與 連結在一起
-Bsymbolic-functions
,我將RTLD_DEEPBIND
標誌傳遞給dlopen
函式。有沒有辦法以程式方式知道 .so 是否與
-Bsymbolic-functions
C 連結?
您可以使用標準 ELF 程序轉儲:
dump -Lv libxxx.so | grep SYMBOLIC
有一個命令叫nm
nm - 列出目標文件中的符號
你可以使用命令
nm Absolute_path_of_.so_file_name | grep -i -Bsymbolic-functions