• qmake之CONFIG(debug, debug|release)


    CONFIG(debug, debug|release) 这种语法是什么含义呢?

    两个参数,前者是要判断的active的选项,后者是互斥的选项的一个集合。

    在 Qt 编程中,多数人用的都是 qmake,并编写相应pro文件。

    实际中经常需要对 debug 与 release 两种编译模式 设置不同的选项,比方说链接不同库

    遇到该问题,简单看看qmake的manual,不少人都会写出类似下面的内容:

    debug {
    LIBS += -L../lib1 -lhellod
    }
    release {
    LIBS += -L../lib2 -lhello
    }

    很不幸,这么做通常不能正常工作。

    如果打开看生成的makefile文件,会发现 无论是debug还是release,上面的两个语句都会同时起作用。也就是说,上面相当于

    LIBS += -L../lib1 -lhellod -L../lib2 -lhello原因

    这是很违反直觉的,因为CONFIG可以同时定义 debug 和 release,但只有一个处于active(当两个互斥的值出现时,最后设置的处于active状态)

    比如:

    CONFIG = debug
    CONFIG += release
    ...

    这种情况下,release处于active状态,但,debug 和 release 都能通过上面的测试。

    如何解决

    CONFIG(debug, debug|release) {
    LIBS += -L../lib1 -lhellod
    } else {
    LIBS += -L../lib2 -lhello
    }

    CONFIG(debug, debug|release):LIBS += -L../lib1 -lhellod
    CONFIG(release, debug|release):LIBS += -L../lib2 -lhello
  • 相关阅读:
    C#中Windows通用的回车转Tab方法
    对Form_Load事件的一点想法
    关于粉笔灰对教师影响的解决方案
    今天才发现MSSQLServer2000的排序功能原来这样
    C# 2.0与泛型
    (收藏)Anders Hejlsberg谈C#、Java和C++中的泛型
    对接口interface的一点想法
    马的遍历
    推荐软件:工作时间提醒器
    pgpoolII 介绍
  • 原文地址:https://www.cnblogs.com/sagerking/p/14524093.html
Copyright © 2020-2023  润新知