将2个静态库与target_link_libraries

时间:2018-10-04 06:58:02

标签: cmake static-libraries static-linking

我正在尝试使用cmake链接两个静态库,但是当我使用ar -t查看这些库时,却没有得到期望的结果。

库A链接到B的一个小例子:

文件a.c

void a(){}

文件b.c

void b(){}

文件CMakeLists.txt

project(test C)

add_library(a STATIC "a.c")
add_library(b STATIC "b.c")
target_link_libraries(a b)

我希望在输出ar -t liba.a中看到两个目标文件,但我只会在输出中看到a.c.o

1 个答案:

答案 0 :(得分:0)

您始终可以使用VERBOSE = ON参数调试CMakeLists.txt(在Linux上),以这种方式可以验证命令是否符合期望。

$> make VERBOSE=ON

在您的情况下,CMake扫描 ac 的依赖项,并丢弃 bc 作为 ac 的真正依赖项,这就是为什么它没有链接的原因。 / p>