簡體   English   中英

每個未定義的符號都與它來自的庫名稱相關聯嗎?

[英]Is every undefined symbol associated with the library name it comes from?

假設libA.so依賴於libB.so,libC.so,libD.so。 未定義的符號和所需的庫名稱之間是否存在映射:

undefined_symbol_1 comes from libB.so
undefined_symbol_2 comes from libC.so
undefined_symbol_3 comes from libC.so
undefined_symbol_4 comes from libC.so
undefined_symbol_5 comes from libD.so

還是只是分開存放:

Undefined symbols: undefined_symbol_1, undefined_symbol_2, undefined_symbol_3, undefined_symbol_4, undefined_symbol_5;
Required libraries: "libB.so", "libC.so", "libD.so";

系統:ubuntu

工具:g ++

Linux / elf格式沒有這樣的映射。 未解析的符號和所需的庫不相關。

實際上,您可以預加載(使用LD_PRELOAD )另一個可解析任何未解析符號的庫。 此方法通常用於用另一個堆實現替換libc malloc和friends,而無需重新編譯可執行文件。

解析符號時,運行時鏈接程序會按照加載順序列出加載的可執行文件和庫,並選擇第一個解析符號的庫。

推薦閱讀: Ulrich Drepper如何編寫共享庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM