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

#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 .