我有一个项目有以下结构 . aaa和bbb是2个子目录,并被编译成静态库 . 还有一个级别(文件夹)还有另一个项目ccc,它也被编译成静态库,libccc.a是我想要的最终静态库 . 在libccc.a中,我希望它包括项目ccc和aaa bbb . 我试图改变ccc的CMakelist.txt中的链接标志,但似乎无法正常工作 . 我想我使用的是错误的旗帜 .
我原来用于ccc的cmakelist.txt如下所示:
add_subdirectory(AAA)
add_subdirectory(BBB)
set(来源cccsrc1.cpp cccsrc2.cpp)
include_directorys($ )
add_library(ccc STATIC来源)
target_link_library(ccc aaa bbb)
所以有人知道如何更改cmake文件以告诉ccc生成静态库,其中还包括所有aaa和bbb代码 .
2 回答
我认为你应该在target_link_libraries()中指定
PUBLIC
关键字,如下所示:PUBLIC
之后的库和目标链接到链接接口,并成为链接接口的一部分 .使用object library .