这是问题所在 . 我有两个库(A和B)和一个可执行文件-C,它们都使用它们 . 我可以用两种方式描述项目

方法1:

add_library(A ...)

add_library(B ...)target_link_libraries(B A)

add_executable(C ...)target_link_libraries(C B)

方法2:

add_library(A ...)

add_library(B ...)

add_executable(C ...)target_link_libraries(C A B)

在第一种情况下,当我在Visual Studio中构建项目C时,它按顺序构建它们:A,然后是B,然后是C.在第二种情况下,Visual Studio并行构建A和B,然后构建C.

当然,我喜欢第二种方式 - 构建更快 . 当然,我想使用第一种方式 - 因为我不必列出项目C中的所有库依赖项 .

也就是说,我希望CMake理解在链接C时,它应该添加库A,即使我没有在target_link_libraries(C B)命令中指定它 . 而且,我希望Visual Studio并行构建A和B,因为它们是静态库,并且不需要按顺序构建它们 .

它可能吗?