如何组合两个.so libs

时间:2013-10-18 10:02:53

标签: linux gcc ld

我有两个库:libmy1.so和libmy2.so。 libmy1.so很小,需要libmy2.so的支持,它的大小非常大。但是,libmy1.so只需要libmy2.so中的几个函数。有什么方法可以用来将函数链接到libmy1.so,这样libmy1.so可以在没有libmy2.so的情况下使用吗?

2 个答案:

答案 0 :(得分:1)

如果您创建my2的静态版本,您可以链接它们,libmy1.so将包含libmy2.a所需的内容,从而无需包含两个库。

请查看此页面以获取一些指示:Examples of .so and .a libraries

答案 1 :(得分:0)

您也可以将dlopen / dlsym用于需要libmy2.so的函数。

不幸的是,在启动时无法检查是否存在libmy2.so。因此,当第一次调用需要libmy2.so的函数时,libmy1.so必须加载libmy2.so。

如果libmy2.so不存在或无法加载,则必须做出一些错误反应。