您可以将CMAKE_BUILD_TYPE设置为Debug
例如cmake -DCMAKE_BUILD_TYPE=Debug [...]哪个会启用CMAKE_C_FLAGS_DEBUG或CMAKE_CXX_FLAGS_DEBUG.
并附加这样的自定义标志,例如仅在调试构建类型时启用调试宏:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLE_DEBUG_MACRO")
所以这个宏只会在启用时启用CMAKE_BUILD_TYPE=Debug.
或者如评论中提到的,add_definitions(-DENABLE_DEBUG_MACRO)如果您不关心构建类型,也可以直接放置.
编辑以回答评论
目前我想在我的程序(而不是cmake)中打印一些东西,如果-DCMAKE_BUILD_TYPE = Debug已启用
为此,您可以在C++代码中定义一个DEBUG_PRINT仅在ENABLE_DEBUG_MACRO定义时才起作用的宏.
#ifdef ENABLE_DEBUG_MACRO
# define DEBUG_PRINT(msg, ...) fprintf(stdout, "[debug] " msg "\n", ##__VA_ARGS__);
#else
# define DEBUG_PRINT(msg, ...)
#endif
Run Code Online (Sandbox Code Playgroud)
没有调试模式的直播(没有调试消息)
| 归档时间: |
|
| 查看次数: |
1220 次 |
| 最近记录: |