我有一个静态库(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_static_lib
,my_shared_lib
因为它会在一组相当复杂的可执行文件/共享库的其他部分产生奇怪的冲突。