这是整个pro文件:
message("This message should appeare only once!!!")
CONFIG += qt
SOURCES += src/main.cpp
Run Code Online (Sandbox Code Playgroud)
我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
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
设置使用Microsoft Visual Studio 2008 x86工具的环境.
项目消息:此消息应该只出现一次!!!
项目消息:此消息应该只出现一次!!!
项目消息:此消息应该只出现一次!!!
为什么消息打印三次?
ZeR*_*emz 11
实际上,条件"build_pass"始终为true,除了qmake第一次解析.pro文件,因此以下工作:
!build_pass:message("This message should appear only once")
Run Code Online (Sandbox Code Playgroud)
我做了一个帮助函数,在我的项目中工作正常:
defineTest(print) {
!build_pass:message($$1)
}
print("This message should appear only once")
Run Code Online (Sandbox Code Playgroud)