2013-06-28 51 views
6

這是整個pro文件:QMAKE處理我的親文件三次,而不是一個

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

我以下列方式調用qmake

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 

而且我得到以下的輸出:

設置使用Microsoft Visual Studio 2008 x86工具的環境。

項目信息:此信息應該只出現一次!!!

項目信息:此信息應該只出現一次!!!

項目信息:此信息應該只出現一次!!!

爲什麼消息打印三次?

回答

8

因爲默認情況下,qmake將創建3個生成文件:Makefile,Makefile.debugMakefile.release。這是因爲默認配置是在調試和發佈模式下構建項目。如果您將CONFIG -= debug_and_release添加到您的.pro文件中,則應該只能看到該消息一次。你可以找到更多的信息herehere

+0

請不要寫COFIG = ... 使用CONFIG + = ... –

0

此行添加到您的.pro文件

CONFIG -= debug_and_release debug_and_release_target 

QMAKE會產生只有一個與它的.pro Makefile文件將只計算一次。

9

其實,條件「build_pass」始終是除第一次QMAKE分析你的.pro文件真實,所以下面的工作:

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

我做了一個輔助函數,它工作在我的項目罰款:

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

print("This message should appear only once") 
相關問題