2013-06-28 26 views
6

Đây là toàn bộ pro file:qmake xử lý pro-file của tôi ba lần thay vì một

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

tôi gọi qmake theo cách sau:

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 

Và tôi nhận ra sau đây:

Môi trường thiết lập để sử dụng các công cụ Microsoft Visual Studio 2008 x86.

TIN NHẮN Dự án: Thông báo này chỉ được xuất hiện một lần !!!

TIN NHẮN Dự án: Thông báo này chỉ được xuất hiện một lần !!!

TIN NHẮN Dự án: Thông báo này chỉ được xuất hiện một lần !!!

Tại sao thư được in BA lần?

Trả lời

8

Bởi vì theo mặc định, qmake sẽ tạo 3 makefiles: Makefile, Makefile.debugMakefile.release. Điều này là do cấu hình mặc định là xây dựng dự án trong chế độ gỡ lỗi và phát hành. Nếu bạn thêm CONFIG -= debug_and_release vào tệp .pro của mình, bạn sẽ chỉ thấy thông báo một lần. Bạn có thể tìm thêm thông tin herehere.

+0

Không EVER viết COFIG = ... Sử dụng CONFIG + = ... –

0

Thêm dòng này vào tập tin .pro bạn

CONFIG -= debug_and_release debug_and_release_target 

qmake sẽ tạo ra chỉ có một Makefile với nó và tập tin .pro sẽ được đánh giá chỉ một lần.

9

Trên thực tế, điều kiện "build_pass" luôn luôn là đúng, ngoại trừ lần đầu tiên qmake phân tích tập tin .pro của bạn, vì vậy các công việc sau:

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

tôi đã thực hiện một chức năng helper, mà hoạt động tốt trong dự án của tôi:

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

print("This message should appear only once")