2016-07-16 24 views
0

Um einen kleinen Zusammenhang zu geben, bin ich im Geschäft der Verpackung einer ausführbaren Datei mit statischen Plugins (http://doc.qt.io/qt-5/plugins-howto.html#static-plugins).qmake Language reserved Wort Problem (glaube ich)

in Windows ich:

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 

Die if Anweisung übernimmt den Brief des Hinzufügens d in die Bibliothek Namen nur im Debug-Modus, in dem der Dateiname librawplugind.a zum Beispiel ist.

Unter Mac OS sind Bibliotheken heißen libbasictools_debug.a genannt, so dass ich dachte, ich würde einfach ersetzen d mit debug in der if Aussage:

if(!debug_and_release|build_pass):CONFIG(debug, debug|release) 
    win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)debug 

Aber es funktionierte nicht. Ich denke, weil debug ein reserviertes Wort in der qmake-Sprache ist.

Wie wird dieses Problem gelöst?

Ich denke, das für das Problem ähnlich ist " des Druckens in qDebug() << "\"";, wo " muss \ vorangestellt werden.

+0

Woher wissen Sie, dass es nicht funktioniert hat? – spinkus

Antwort

0

qmake Syntax kennt nicht das "if". Einfach verwenden:

!debug_and_release|build_pass:CONFIG(debug, debug|release) { 
    win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)d 
} 
Verwandte Themen