这是整个pro
文件:
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工具的环境。
项目消息:此消息应该只出现一次!!!
项目消息:此消息应该只出现一次!!!
项目消息:此消息应仅出现一次!!!
为什么邮件打印三次?
答案 0 :(得分:10)
实际上,条件“build_pass”始终为true,除了qmake第一次解析.pro文件,因此以下工作:
!build_pass:message("This message should appear only once")
我做了一个帮助函数,在我的项目中工作正常:
defineTest(print) {
!build_pass:message($$1)
}
print("This message should appear only once")
答案 1 :(得分:8)
因为默认情况下,qmake
会创建3个makefile:Makefile
,Makefile.debug
和Makefile.release
。这是因为默认配置是在调试和发布模式下构建项目。如果您将CONFIG -= debug_and_release
添加到.pro
文件中,则只能看一次该消息。您可以找到更多信息here和here。
答案 2 :(得分:0)
将此行添加到.pro文件
CONFIG -= debug_and_release debug_and_release_target
qmake只会生成一个Makefile,而.pro文件只会被评估一次。
答案 3 :(得分:0)
您可以这样:
Release:message("This message should appeare only once!!!")
如果您处于释放模式,它将运行一次,以将调试更改为Debug:...