2013-04-14 72 views
2

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

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

在此先感谢您的帮助。

回答

1

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