我有一个加载.so
插件的可执行文件。
可执行文件被链接,-rdynamic
以便可以发生符号回调。
我有一个包含在可执行文件中的静态库。这有一个BLAH_hello()
在.a
可执行文件中不使用静态库。BLAH_hello()
即在可执行代码中没有调用。
但是,.so
确实有调用BLAH_hello()
.
当我抱怨一个未定义的符号dlopen()
时.so
BLAH_hello()
如果BLAH_hello()
我在可执行代码中包含一个虚拟调用,例如BLAH_hello(NULL);
. 该符号包含在可执行文件中,并且在.so
加载时会找到该符号。
我确信我也可以将 ' 链接到.so
但.a
多个动态加载.so
的 ' 使用BLAH_hello
调用,因此将它放在可执行文件中是有意义的。如果我将库链接到每个.so
.
所以我想知道的是,.a
即使它们实际上并未在可执行文件中使用,如何将它们的符号放入可执行文件中?