zoukankan      html  css  js  c++  java
  • c++通过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
    
    
  • 相关阅读:
    Rain 学习自用贴
    連休計画
    091207 晴
    记下London奥运我喜欢的几首歌
    20世纪最好的10个算法(转)
    一日一美女:告诉你什么是斐波那契螺旋线
    矩阵鞍点的寻找
    日本の物語
    a new start~ s!
    Photoshop CS5运用色彩原理去除半透明水印(转)
  • 原文地址:https://www.cnblogs.com/muahao/p/9403619.html
Copyright © 2011-2022 走看看