我有两个库:libmy1.so和libmy2.so。 libmy1.so很小,需要libmy2.so的支持,它的大小非常大。但是,libmy1.so只需要libmy2.so中的几个函数。有什么方法可以用来将函数链接到libmy1.so,这样libmy1.so可以在没有libmy2.so的情况下使用吗?
答案 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不存在或无法加载,则必须做出一些错误反应。