我正在使用Qt Creator并拥有一个依赖于C ++静态库项目的Qt GUI项目。我想将GUI应用程序的发布版本与.lib的发布版本以及带有调试.lib的GUI应用程序的调试版本链接起来。我已经找到了如何通过在我的.pro文件中包含如下所示的行来向项目中添加其他库:
LIBS += -L./libfolder -lmylib.lib
但我看不出如何使用不同的-L
命令进行发布和调试构建。
qmake是否支持这样做?
答案 0 :(得分:43)
正常
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"
}
比照。 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找到更多信息。