我有一個靜態庫(my_static_lib
),我鏈接到一個可執行的二進制文件。一些符號,但不是全部,在我的二進制文件中使用。如何在二進制文件中保留特定符號?
動態加載的第二個庫(my_shared_lib
)期望通過從二進制文件中注入符號從my_static_lib接收一些符號。但是這些符號不被my_binary使用,所以它們被剝離了最終的bin文件。
因此,在運行時,my_shared_lib
抱怨說它無法找到__my_stripped_symbols__
和崩潰。
有沒有辦法強制鏈接器保持__my_stripped_symbols__
?我喜歡的東西,可以清晰地寫在Makefile.am(自動工具)
(-binary file makefile)
-L$(top_builddir)/static_lib -lmy_static_lib --magic-flag-to-keep-stripped-symbol
我不想my_shared_lib
鏈接my_static_lib
,因爲它會生成可執行文件中的一個相當複雜的組的其他部位奇怪的衝突/共享庫。