[英]How to add a symbol to cmake, in debug mode only?
我希望以下代码仅在调试模式下编译
主文件
#ifdef __DEBUG__
int a=1;
std::cout<<a;
#endif
将以下内容添加到 cmake
add_compile_options(
"-D__DEBUG__"
)
或者
add_compile_options(
"$<$<CONFIG:DEBUG>:-D__DEBUG__>"
)
只是似乎什么也没做。
我怎样才能实现期望的行为?
尝试设置 CMAKE_CXX_FLAGS
set(CMAKE_CXX_FLAGS "-D__DEBUG__")
在源代码中
#if defined(__DEBUG__)
int a=1;
std::cout<<a;
#endif
NDEBUG
CMake已经在发布构建期间定义了NDEBUG
,只需使用它:
#ifndef NDEBUG
int a=1;
std::cout<<a;
#endif
target_compile_definitions
配置拼写为Debug
,而不是DEBUG
。 由于您永远不应该使用目录级命令(如add_compile_options
),我将向您展示如何使用目标级命令:
target_compile_definitions(
myTarget PRIVATE "$<$<CONFIG:Debug>:__DEBUG__>"
)
也不需要使用过于通用的编译选项命令。 CMake 已经提供了一个抽象来确保预处理器定义可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.