26

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

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

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

qmake 是否支持这样做?

4

2 回答 2

45

正常的

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"
}

参照。qmake 文档

编辑 2013-11-17:不要-LfooLIBS. 规范的方法是将路径(不带-L)添加到QMAKE_LIBDIR.

于 2009-07-15T08:47:44.730 回答
26

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

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

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

如果已将 DEBUG 添加到 CONFIG qmake 变量中,则使用调试括号内的位,如果已将 RELEASE 添加到 CONFIG 变量中,则包含发布括号内的类似内容。

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

您可以在此处找到有关 qmake 的更多信息。

于 2009-07-15T08:28:05.583 回答