gpt4 book ai didi

cmake - 如何仅使用cmake一次构建目标文件?

转载 作者:行者123 更新时间:2023-12-03 13:24:56 27 4
gpt4 key购买 nike

我有一个看起来像这样的CMakeLists.txt文件:

add_executable(exec1 exec1.c source1.c source2.c source3.c)
add_executable(exec2 exec2.c source1.c source2.c source3.c)
add_executable(exec3 exec3.c source1.c source2.c source3.c)

source1.o source2.o source3.o文件的构建时间非常长,并且由于它们是所有可执行文件所共有的,因此我希望每个文件仅构建一次。但是,cmake的当前行为是为每个exec目标分别重建它们,这是不必要的重复工作。

有没有一种方法可以告诉cmake仅生成一次目标文件?

最佳答案

不会。这很难实现,因为可以使用不同的编译器选项,构建后的步骤等来编译源文件。

您可以做的就是将目标文件放入静态库中,并与之链接:

add_library(mylib STATIC source1.c source2.c)
add_executable(myexe source3.c)
target_link_libraries(myexe mylib)

编辑:当然,您也可以将其放入 共享库中。

关于cmake - 如何仅使用cmake一次构建目标文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1388877/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com