Linker

有沒有辦法檢查 .so 是否已使用 -Bsymbolic-functions 標誌編譯?

  • January 5, 2021

我的應用程序使用動態載入自定義程式碼dlopen。對於常用符號,預設使用全域符號表。

但是,我想提供這樣的功能——如果使用者將他們的 so 與 連結在一起-Bsymbolic-functions,我將RTLD_DEEPBIND標誌傳遞給dlopen函式。

有沒有辦法以程式方式知道 .so 是否與-Bsymbolic-functionsC 連結?

您可以使用標準 ELF 程序轉儲:

dump -Lv libxxx.so | grep SYMBOLIC

有一個命令叫nm

nm - 列出目標文件中的符號

你可以使用命令

nm Absolute_path_of_.so_file_name | grep -i -Bsymbolic-functions

引用自:https://unix.stackexchange.com/questions/217121