gpt4 book ai didi

c++ - 如何使用 CMake 通过命令行定义 C++ 预处理器宏?

转载 作者:IT老高 更新时间:2023-10-28 12:51:17 42 4
gpt4 key购买 nike

我尝试在 CMake 的命令行中设置预处理器宏。我试过了:

set generator="Visual Studio 8 2005"
set params=-D MY_MACRO=1
cmake.exe -G %generator% %params% ..\some_project

但它既没有在我编译时定义,也无法在 CMake 生成的文件中找到名称 MY_MACRO,除了 CMakeCache.txt 它存在于形式:

MY_MACRO:UNINITIALIZED=1

我该怎么做?

最佳答案

一个不错的选择是定义一个 cmake 选项:

OPTION(DEFINE_MACRO "Option description" ON) # Enabled by default

后跟一个条件:

IF(DEFINE_MACRO)
ADD_DEFINITIONS(-DMACRO)
ENDIF(DEFINE_MACRO)

然后您可以使用 -D 标志通过命令行使用 cmake 打开/关闭该选项。示例:

cmake -DDEFINE_MACRO=OFF ..

为确保编译器正确接收定义,您可以在详细模式下调用 make 并检查是否定义了宏:

make VERBOSE=1

这也是一个很好的解决方案,因为 make 将在任何 cmake 选项更改时重新编译您的代码。

关于c++ - 如何使用 CMake 通过命令行定义 C++ 预处理器宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8564337/

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