组合两个共享(.so)库

时间:2013-04-14 17:23:46

标签: c compilation makefile cmake shared-libraries

我有源&我在代码中使用的第三方库的对象。该库附带有关如何使用CMAKE编译它以生成一个处理所有依赖项的make文件的说明。这个make文件创建了两个链接到我的代码stuff.cpp的共享库libA.so和libB.so。

我想创建一个库libstuff.so,其中包含独立运行的所有必要信息。有没有办法做到这一点,而没有弄清楚构建libA.so和libB.so的所有依赖项?我的最后一招是通过传递CMAKE的东西并通过学习其他项目中的所有依赖项来构建我自己的Makefile,但我想尽可能避免这样做。 (不是Make的专家,直到现在才使用CMake。)

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您应该将这些libA.solibB.so构建为静态库(档案),即libA.alibB.a,然后将它们链接到您自己的libstuff.so }。如果此第三方项目的CMakeLists没有为您提供将其构建为静态的选项,那么您必须自行修改它以添加此选项,但只要您不是完整的,这相对容易CMake的新手。