Loading
柚木鉉の空間
0%
INITIALIZING
首页 文章 标签 归档 友链 推广 搜索
文档编号 // 2996E8 在线

CMAKE与宏区分开发版本与发行版本

2020-01-27
更新: 2026-04-25
457 字符
这篇文章写于 2020,已经超过 6 年了。内容可能已经过时。

例如我在一个函数中写出:

#if DEBUG
DEBUGRUN(TIME);
#else
RUN(TIME);
#endif

我需要在 DEBUG 模式下通过使用 DEBUGRUN() 函数来获取输出,但是CMAKE不知道自己是不是在 DEBUG 的模式下。
要解决这个问题,只需要在 CMakeLists.txt 中定义即可:

if (CMAKE_BUILD_TYPE STREQUAL Debug)
ADD_DEFINITIONS(-DDEBUG)
endif ()

其中 CMAKE_BUILD_TYPE 是通过 cmake -DCMAKE_BUILD_TYPE=Debug . 来定义的,在CLion中已经通过 Build -> CMake 选项自动设置了。

这样再运行可执行文件时就会执行 DEBUGRUN 函数了。如果不希望使用 DEBUGRUN 函数,只需将Debug改为Release即可:

cmake -DCMAKE_BUILD_TYPE=Release .
WeChat Pay 微信
Alipay 支付宝
导航 // 相关文章
目录