我正在使用 Qt Creator 并且有一个依赖于 C++ 静态库项目的 Qt GUI 项目。我想将 GUI 应用程序的发布版本与 .lib 的发布版本和 GUI 应用程序的调试版本与调试 .lib 链接。我发现了如何通过在我的 .pro 文件中包含如下行来向项目添加其他库:
LIBS += -L./libfolder -lmylib.lib
但是我看不到如何使用不同的-L
命令进行发布和调试构建。
qmake 是否支持这样做?
正常的
debug:LIBS += ...
else:LIBS += ...
当用户天真地使用CONFIG += debug
或CONFIG += 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:不要-Lfoo
在LIBS
. 规范的方法是将路径(不带-L
)添加到QMAKE_LIBDIR
.
在您的项目文件中,您可以执行以下操作
debug {
LIBS += -L./libfolder -lmydebuglib.lib
}
release {
LIBS += -L./libfolder -lmyreleaselib.lib
}
如果已将 DEBUG 添加到 CONFIG qmake 变量中,则使用调试括号内的位,如果已将 RELEASE 添加到 CONFIG 变量中,则包含发布括号内的类似内容。
您也可以使用“!debug”而不是“release”(即当调试不在配置中时)
您可以在此处找到有关 qmake 的更多信息。