首页 文章

使用qmake / Qt Creator链接调试/发布库

提问于
浏览
24

我正在使用Qt Creator并拥有一个依赖于C静态库项目的Qt GUI项目 . 我想将GUI应用程序的发布版本与.lib的发布版本以及带有调试.lib的GUI应用程序的调试版本链接起来 . 我已经找到了如何通过在我的.pro文件中包含如下所示的行来向项目中添加其他库:

LIBS += -L./libfolder -lmylib.lib

但我看不出如何使用不同的 -L 命令进行发布和调试构建 .

qmake是否有支持这样做?

2 回答

  • 42

    在您的项目文件中,您可以执行以下操作

    debug {
        LIBS += -L./libfolder -lmydebuglib.lib
    }
    
    release {
        LIBS += -L./libfolder -lmyreleaselib.lib
    }
    

    如果已将DEBUG添加到CONFIG qmake变量,则使用调试大括号内的位,如果将RELEASE添加到CONFIG变量,则类似于释放括号内的内容 .

    您也可以使用“!debug”而不是“release”(即调试不在配置中时)

    您可以在qmake here找到更多信息 .

  • 22

    正常

    debug:LIBS += ...
    else:LIBS += ...
    

    当用户天真地使用 CONFIG += debugCONFIG += release 在调试和发布版本之间切换时,解决方案会中断(而且他们会这样做;没有人记得在 CONFIG += debug 之前说 CONFIG -= release release_and_debug :) .

    这是 debug 范围内的规范方法:

    CONFIG( debug, debug|release ) {
        # debug
        QMAKE_LIBDIR += "path/to/debug/lib"
    } else {
        # release
        QMAKE_LIBDIR += "path/to/release/lib"
    }
    

    参看the qmake docs .

    EDIT 2013-11-17 :请勿在 LIBS 中使用 -Lfoo . 规范的方法是将路径(没有 -L )添加到 QMAKE_LIBDIR .

相关问题