gpt4 book ai didi

c++ - 如何在 CMake 中构建具有 2 个不同变量值的程序

转载 作者:可可西里 更新时间:2023-11-01 17:42:17 27 4
gpt4 key购买 nike

我最近将我的 Qt 项目从 qmake 移植到了 CMake。我的主程序包含一个值,该值取决于 #define 指令。

我想通过 CMake 在外部指定 define 指令,并构建同一可执行文件的 3 个不同名称的版本。

我应该怎么做?

我看过 set_target_properties 但这只适用于库而不适用于可执行文件。

例如我想要下面的程序,

 int main()
{

cout << BUILDTYPE << endl;
}

它基于 BUILDTYPE "define" 编译成 3 种不同的风格(3 种可执行文件)例如在我的 CMakeLists.txt 我想指定

add_executable(myAppV1 -DBUILDTYPE=1)
add_executable(myAppV2 -DBUILDTYPE=2)
add_executable(myAppV3 -DBUILDTYPE=3)

但这不是正确的语法。一些提示?我得到 3 个打印的可执行文件

最佳答案

您确定 set_target_properties 不起作用吗?这个怎么样:

set_target_properties(myAppV1 PROPERTIES COMPILE_FLAGS "-DBUILDTYPE=1")

或:

set_target_properties(myAppV1 PROPERTIES COMPILE_DEFINITIONS "BUILDTYPE=1")

在我的机器上它工作:

add_executable(myAppV1 main.cpp)
add_executable(myAppV2 main.cpp)
set_target_properties(myAppV1 PROPERTIES COMPILE_DEFINITIONS "BUILDTYPE=1")
set_target_properties(myAppV2 PROPERTIES COMPILE_DEFINITIONS "BUILDTYPE=2")

关于c++ - 如何在 CMake 中构建具有 2 个不同变量值的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9989574/

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