通过CMake实现debug开关

刚学cmake,很多东西还不是很懂,不过今天刚刚实现了通过CMake控制debug的开关,兴奋之余记录一下。


背景介绍:

最近参与到了一个大的C++项目,很多代码已经非常成熟,我来添加一些辅助功能,但是源代码中没有预留debug的接口。为了不影响现有代码的结构,我想通过宏定义的方式添加DEBUG控制。原本以为#DEFINE DEBUG只能在.h或.cc文件中定义,后来经人点播才知道#IFDEF DEBUG的精髓是通过cmake来实现。


具体步骤:

首先,我在src代码里编写了若干debug的输出:

#IFDEF DEBUG

    some print command;

#ENDIF

然后,在Cmakefile中添加DEBUG的定义:

IF (CMAKE_BUILD_TYPE STREQUAL Debug)        用IF控制,可以实现Release版本不输出debug信息
    ADD_DEFINITIONS(-DDEBUG)                            不知道为什么DEBUG必须写成-DDEBUG,谁来解释一下吧
ENDIF()

最后,在cmake的命令中设置build种类为Debug:

$ cmake ../src -DCMAKE_BUILD_TYPE=Debug

$ make

这样再运行可执行文件时就会执行some print command等debug信息了。如果不想看到debug信息,只需将Debug改为Release即可:

cmake ../src -DCMAKE_BUILD_TYPE=Release









  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值