我正在尝试使用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
。
答案 0 :(得分:0)
您始终可以使用VERBOSE = ON参数调试CMakeLists.txt(在Linux上),以这种方式可以验证命令是否符合期望。
$> make VERBOSE=ON
在您的情况下,CMake扫描 ac 的依赖项,并丢弃 bc 作为 ac 的真正依赖项,这就是为什么它没有链接的原因。 / p>