为了提供一点上下文,我正在用静态插件(http://doc.qt.io/qt-5/plugins-howto.html#static-plugins)打包可执行文件。
在Windows中,我做到了:
LIBS = -L../../plugins -lrawplugin
LIBS = -L../../plugins -lbasictools
if(!debug_and_release|build_pass):CONFIG(debug, debug|release)
win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)d
if
语句负责仅在调试模式下将字母 d
添加到库名称中,例如,文件名librawplugind.a
。
在 Mac OS 上,库被命名为 即 libbasictools_debug.a
,所以我想我会在if
语句中用debug
替换d
:
if(!debug_and_release|build_pass):CONFIG(debug, debug|release)
win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)debug
但它没有奏效。我猜是因为debug
是qmake语言中的保留词。
如何克服这个问题?
我认为这类似于qDebug() << """;
的打印"
问题,其中"
必须在前面加上。
qmake语法不知道"if"。只需使用:
!debug_and_release|build_pass:CONFIG(debug, debug|release) {
win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)d
}