我有2个静态库,cc静态链接:如何导入只有一个.a库的所有符号?
libalgha.a
与2层的功能:与链接func3()
和func4()
我有1个可执行文件(mytest
):func1()
和func2()
和
libbeta.a
2个功能这2个库。可执行文件仅调用func1()
和func3()
。所以据我所知,链接器只会将这两个函数的符号放入可执行文件中。
可执行文件在运行时加载了dlopen()
共享库(libgamma.so
),此共享库使用libalgha.a
的函数func2()
。当运行mytest
我得到的错误:
symbol func2: referenced symbol not found
我不能包括libalgha.a
内libgamma.so
因为在Solaris 32/64位问题。
那么如何链接mytest
与libalgha.a
的所有符号?
感谢您的快速答复,问题是,在现实中,有这个静态库中有数百个函数,这就是为什么我要寻找一个更通用的选项,比如“import-all-symbols-of-this-library”。事实上,--whole-archive选项在Solaris中不可用。 – jav