2013-06-28 3 views
6

Dies ist ganze pro Datei:Qmake verarbeitet meine pro-Datei dreimal statt einer

message("This message should appeare only once!!!") 
CONFIG += qt 
SOURCES += src/main.cpp 

Ich rufe qmake auf folgende Weise:

set QMAKESPEC=win32-msvc2008 
set QTDIR=c:\Qt\4.8.4_vs2008\ 

call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86 
call "%QTDIR%\bin\qmake.exe" -tp vc Server.pro 

Und ich folgende Ausgabe:

Einstellungsumgebung für die Verwendung von Microsoft Visual Studio 2008 x86-Tools.

Project MESSAGE: Diese Nachricht sollte nur einmal angezeigt werden !!!

Project MESSAGE: Diese Nachricht sollte nur einmal angezeigt werden !!!

Project MESSAGE: Diese Nachricht sollte nur einmal angezeigt werden !!!

Warum wurde die Nachricht dreimal gedruckt?

Antwort

8

Da qmake standardmäßig 3 Makefiles erstellt: Makefile, Makefile.debug und Makefile.release. Dies liegt daran, dass die Standardkonfiguration das Projekt im Debug- und im Release-Modus erstellt. Wenn Sie CONFIG -= debug_and_release zu Ihrer Datei .pro hinzufügen, sollten Sie die Nachricht nur einmal sehen. Sie können weitere Informationen here und here finden.

+0

Schreiben Sie nicht COFIG = ... Verwenden Sie CONFIG + = ... –

0

Fügen Sie diese Zeile in die .pro-Datei mit ihm

CONFIG -= debug_and_release debug_and_release_target 

Qmake nur ein Makefile generieren und .pro-Datei wird nur einmal ausgewertet werden.

9

Eigentlich ist die Bedingung „build_pass“ ist immer wahr, außer das erste Mal Qmake Ihre .pro-Datei analysiert, so dass die folgenden Werke:

!build_pass:message("This message should appear only once") 

Ich habe eine Hilfsfunktion, die in meinem Projekt gut funktioniert:

defineTest(print) { 
    !build_pass:message($$1) 
} 

print("This message should appear only once") 
Verwandte Themen