You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CMake命令行定义无值的DEBUG宏?

仅定义DEBUG宏(不赋值)的CMake命令行实现方法

方法1:修改CMakeLists.txt配合命令行参数

先把你当前的add_compile_definitions(DEBUG=$(DEBUG))替换为CMake原生的条件判断逻辑:

if(DEBUG)
    add_compile_definitions(DEBUG)
endif()

执行CMake配置时,只需在命令行声明DEBUG变量即可(无需赋值,或赋值任意值都能触发):

# 两种写法均有效
cmake -DDEBUG ..
cmake -DDEBUG=ON ..

生成的构建系统会自动为编译器添加-DDEBUG参数,仅定义宏而不设置值。

方法2:直接通过命令行传递编译定义

如果不想修改现有CMakeLists.txt,可以直接在CMake命令行指定全局编译标志:

# 针对C++项目
cmake -DCMAKE_CXX_FLAGS="-DDEBUG" ..

# 针对C项目
cmake -DCMAKE_C_FLAGS="-DDEBUG" ..

这种方式会直接把-DDEBUG注入到编译器参数中,同样实现仅定义宏的需求。


内容的提问来源于stack exchange,提问作者MoneyBall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:30:12