编译并行,link串行
在CMake中,如果你有多个可执行文件目标,并且你想要它们在链接时串行构建,你可以使用CMake的add_dependencies命令来创建一个依赖链。这将确保在开始构建一个目标之前,它所依赖的目标已经构建完成。
下面是一个简化的步骤说明,展示了如何设置CMakeLists.txt来实现多个可执行文件的串行链接:
为每个可执行文件定义一个目标。
使用add_dependencies为它们创建一个依赖链。
这里是一个例子:
cmake_minimum_required(VERSION 3.10)
project(SerialLinkExample)
# 定义第一个可执行文件
add_executable(Exec1 source1.cpp)
# 定义第二个可执行文件
add_executable(Exec2 source2.cpp)
# 定义第三个可执行文件
add_executable(Exec3 source3.cpp)
创建依赖链
add_dependencies(Exec2 Exec1)
add_dependencies(Exec3 Exec2)
在这个例子中,Exec2 只有在 Exec1 完成后才会开始构建,Exec3 只有在 Exec2 完成后才会开始构建。这意味着链接是串行的,即使编译可能是并行的。
reference from ChatGPT