【发布时间】:2016-08-22 16:33:26
【问题描述】:
这是我的情况
我有一个共享库 (PIC) foo.so。它使用来自 bar.a 的符号。 bar.a 是 NPIC。所以不能添加到 foo.so 的链接行。
foo.so 是从 main.C 动态加载的 它可以正常加载,但在运行时使用 bar.a 中的符号时,它会以未解析的符号退出。
我被建议的2个解决方案 1. 编译bar.a PIC并添加到foo.so的链接行 2.在main.C链接行使用“-Wl,--whole-archive bar.a -rdynamic”
1 是不可能的,因为 bar.a 是第三方库。 2 是不可能的,因为我们不希望我们的符号被导出。
是否有任何其他成语/解决方案来解决这个问题?
【问题讨论】:
-
我说的对吗:你并没有真正链接到 foo.so,你只是通过 dlopen 等使用它?