zoukankan      html  css  js  c++  java
  • 在Qt项目中添加全局宏变量来达到按方案编译的目的

    遇到一个需求,需要根据不同需要编译所需程序,本人采用了在QtCreator中建立不同的构建设置,配合宏的方式来实现:

    1、在项目-构建设置中,添加构建配置
    2、在构建步骤里的qmake中的额外参数一栏填入:"DEFINES += XXXX",也就是对应的宏变量
    3、按照上述方法再次添加别的构建配置与宏变量。
    4、之后便可以在项目使用
    #ifdef XXXX
    #endif
    的方式来判断。

    下面是从一些别的blog中的资料:

    变量用法:

    1、自定义变量:
      MY_VARIABLE = value
      定义了一个变量MY_VARIABLE,并将值设置为value。
    2、变量值的传递:
      可以通过在其它任何一个变量的变量名前加$$来把这个变量的值分配给当前的变量。例如:
      MY_DEFINES = $$DEFINES  
      现在MY_DEFINES变量包含了项目文件在这点时DEFINES变量的值。这也和下面的语句一样:
      MY_DEFINES = $${DEFINES}
    原文地址:
    http://blog.csdn.net/u013639526/article/details/43983755

    变量赋值:
    DEFINES += HELLO=\"$$PWD/\"
    DEFINES += SUCCESS=\"string\"
    在.cpp中测试代码如下:
    #ifdef HELLO
    qDebug()<<"HELLO="<<HELLO;
    #else
    qDebug()<<"bye";
    #endif
    #ifdef HELLO
    qDebug()<<"SUCCESS="<<SUCCESS;
    #else
    qDebug()<<"bye";
    #endif

    条件编译:

     debug{
        TARGET = XXd
      }
      release{
        TARGET = XX
      }
      上面代码的意思是:如果是debug版本,可执行程序的名字是xxd,否则就是xx。可以这样写:
      debug:TARGET = xxd
      release:TARGET = XX
      作用域也可以嵌套使用,例如:
      win32{
        debug{
          TARGET = xxwd
        }
      }

    判断是否存在定义的宏:

    DEFINES += CLIENT
    contains( DEFINES, CLIENT ) {
    # VERSION contains 'CLIENT'
    message( "Configuring for CLIENT build..." )
    #must be last
    ICON = $${TARGET}.png
    DESKTOP_FILE = $${TARGET}.desktop
    include(../install.pri)
    }

    Qt项目管理(33个规则)
    https://www.cnblogs.com/findumars/p/5602073.html

    QMake常用语法
    http://www.cnblogs.com/yuohoo/archive/2013/03/11/2954556.html
    http://www.cnblogs.com/yuohoo/archive/2013/03/11/2954594.html
    https://www.cnblogs.com/yuohoo/archive/2013/03/11/2954631.html
    http://www.cnblogs.com/yuohoo/archive/2013/03/12/2956533.html

    更多详细信息可以参考文档
    qmake Function Reference

  • 相关阅读:
    Codeforces 777B Game of Credit Cards
    Codeforces 777A Shell Game
    零基础学贪心算法
    1283 最小周长
    容斥原理
    Humble Numbers(丑数) 超详解!
    1284 2 3 5 7的倍数
    1305 Pairwise Sum and Divide
    1347 旋转字符串
    HDU 2549 壮志难酬
  • 原文地址:https://www.cnblogs.com/blueroses/p/8288219.html
Copyright © 2011-2022 走看看