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

时间:2009-07-15 08:26:35

标签: c++ qt qmake

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

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

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

qmake是否支持这样做?

2 个答案:

答案 0 :(得分:43)

正常

debug:LIBS += ...
else:LIBS += ...
当用户天真地使用CONFIG += debugCONFIG += release在调试和发布版本之间切换时,

解决方案会中断(他们会这样做;没有人记得在CONFIG -= release release_and_debug之前说CONFIG += debug: )。

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

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

比照。 the qmake docs

编辑2013-11-17 :请勿在{{1​​}}中使用-Lfoo。规范的方法是将路径(没有LIBS)添加到-L

答案 1 :(得分:23)

在你的项目文件中你可以做这样的事情

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

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

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

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

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