更多參考
以「#」開始,到這一行結束。
快捷鍵:ctrl + /
指定編譯器選項和專案配置,值由qmake內部識別並具有特殊意義。
以下配置值控制編譯標誌:
選項說明
release
專案以release模式構建。如果也指定了debug,那麼最後乙個生效。
debug
專案以debug模式構建。
debug_and_release
專案準備以debug和release兩種模式構建。
debug_and_release_target
此選項預設設定。如果也指定了debug_and_release,最終的debug和release構建在不同的目錄。
build_all
如果指定了debug_and_release,預設情況下,該專案會構建為debug和release模式。
autogen_precompile_source
自動生成乙個.cpp檔案,包含在.pro中指定的預編譯標頭檔案。
ordered
使用subdirs模板時,此選項指定應該按照目錄列表的順序處理它們。
precompile_header
可以在專案中使用預編譯標頭檔案的支援。
warn_on
編譯器應該輸出盡可能多的警告。如果也指定了warn_off,最後乙個生效。
warn_off
編譯器應該輸出盡可能少的警告。
exceptions
啟用異常支援。預設設定。
exceptions_off
禁用異常支援。
rtti
啟用rtti支援。預設情況下,使用編譯器預設。
rtti_off
禁用rtti支援。預設情況下,使用編譯器預設。
stl啟用stl支援。預設情況下,使用編譯器預設。
stl_off
禁用stl支援。預設情況下,使用編譯器預設。
thread
啟用執行緒支援。當config包括qt時啟用,這是預設設定。
c++11
啟用c++11支援。如果編譯器不支援c++11這個選項,沒有影響。預設情況下,支援是禁用的。
c++14
啟用c++14支援。如果編譯器不支援c++14這個選項,沒有影響。預設情況下,支援是禁用的。
當使用debug和release選項時(windows下預設的),該專案將被處理三次:一次生成乙個」meta」makefile,另外兩次生成makefile.debug和makefile.release。
在後面的次數,build_pass和相應的debug或release新增到config選項。這使得它可以執行構建特定任務。
例如:
build_pass:config(debug, debug|release)
qmake新增這個變數的值作為編譯器c預處理器巨集(-d選項)。
例如:
defines +=use_my_stuff
然後就可以在**中使用:
#ifdef use_my_stuff
// todo
#else
// todo
#endif
往往可以指定專案的特殊版本(比如:正式版、試用版)、對一些特殊功能模組(比如:加密狗)進行限制等。
指定檢視解決依賴關係的目錄列表,當包含檔案時使用。
例如:
dependpath +=. forms include qrc sources
指定在何處放置目標檔案。
例如:
destdir =../../lib
指定ui檔案(參考: qt designer manual)在編譯前被uic處理。所有的構建這些ui檔案所需的依賴、標頭檔案和原始檔都會自動被新增到專案中。
例如:
forms = mydialog.ui \
mywidget.ui \
myconfig.ui
指定專案中所有的標頭檔案。
qmake會自動檢測是標頭檔案的類中是否需要moc,並增加適當的依賴關係和檔案到專案中,來生成和鏈結moc檔案。
例如:
headers = myclass.h \
login.h \
mainwindow.h
指定編譯專案時應該被搜尋的#include目錄。
例如:
includepath = c:/msdev/include
d:/stl/include
如果路徑包含空格,需要使用引號包含。
win32:includepath += "c:/mylibs/extra headers"
unix:includepath += "/home/user/extra headers"
指定鏈結到專案中的庫列表。如果使用unix -l (library) 和 -l (library path) 標誌,在windows上qmake正確處理庫(也就是說,將庫的完整路徑傳遞給鏈結器),庫必須存在,qmake會尋找-l指定的庫所在的目錄。
例如:
win32:libs += c:/mylibs/math.lib
unix:libs += -l/usr/local/lib -lmath
如果路徑包含空格,需要使用引號包含路徑。
win32:libs += "c:/mylibs/extra libs/extra.lib"
unix:libs += "-l/home/user/extra libs" -lextra
指定來自moc的所有中間檔案放置的目錄(含q_object巨集的標頭檔案轉換成標準.h檔案的存放目錄)。
例如:
unix:moc_dir = ../myproject/tmp
win32:moc_dir = c:/myproject/tmp
指定所有中間檔案.o(.obj)放置的目錄。
例如:
unix:objects_dir = ../myproject/tmp
win32:objects_dir = c:/myproject/tmp
指定專案中使用qt的模組。預設情況下,qt包含core和gui,以確保標準的gui應用程式無需進一步的配置就可以構建。
如果想建立乙個不包含qt gui模組的專案,可以使用「 -=」操作符。
下面一行將構建乙個很小的qt專案:
qt -= gui # 僅僅使用core模組
qt +=core gui widgets xml network
如果你的專案是乙個qt designer外掛程式,使用值uiplugin指定專案構建成庫,但特定的qt designer外掛程式支援,請參考:building and installing the plugin。
指定qt資源編譯器輸出檔案的目錄(.qrc檔案轉換成qrc_*.h檔案的存放目錄)。
例如:
unix:rcc_dir = ../myproject/resources
win32:rcc_dir = c:/myproject/resources
指定資源檔案 (qrc) 的名稱,參考:qt之資源系統
例如:
resources +=resource/resource.qrc
指定應用程式資源檔案的名稱。這個變數的值通常是由qmake或qmake.conf處理,很少需要進行修改。
例如:僅適用於windows,指定的圖示應該包含在乙個生成的.rc檔案裡。如果rc_file 和res_file變數都沒有設定這才可利用。
例如:指定專案中所有原始檔。
例如:
sources = myclass.cpp \
login.cpp \
mainwindow.cpp
指定目標檔案的名稱。預設情況下包含的專案檔案的基本名稱。
例如:sources = main.cpp
模板變數告訴qmake為這個應用程式生成哪種makefile。
可供使用的選項:
選項說明
建立乙個用於構建應用程式的makefile(預設)。
lib建立乙個用於構建庫的makefile。
subdirs
建立乙個用於構建目標子目錄的makefile,子目錄使用subdirs變數指定。
aux建立乙個不建任何東西的makefile。如果沒有編譯器需要被呼叫來建立目標,比如你的專案使用解釋型語言寫的,使用此功能。注:此模板型別只能用於makefile-based生成器。特別是,它不會工作在vcxproj和xcode生成器。
僅適用於windows。建立乙個visual studio應用程式專案。
vclib
僅適用於windows。建立乙個visual studio庫專案。
例如:
template = lib
sources = main.cpp
target = mylib
指定包含使用者介面翻譯文字的翻譯(.ts)檔案列表。
例如:指定來自uic的所有中間檔案放置的目錄(.ui檔案轉化成ui_*.h檔案的存放目錄)。
例如:
unix:ui_dir = ../myproject/ui
win32:ui_dir = c:/myproject/ui
Qt之pro配置詳解
更多參考 以 開始,到這一行結束。快捷鍵 ctrl 指定編譯器選項和專案配置,值由qmake內部識別並具有特殊意義。以下配置值控制編譯標誌 選項說明 release 專案以release模式構建。如果也指定了debug,那麼最後乙個生效。debug 專案以debug模式構建。debug and re...
Qt之pro配置詳解
使用qt的時候,我們經常會對pro進行一系列繁瑣的配置,為方便大家理解 查詢,現將常用的配置進行整理。更多參考 以 開始,到這一行結束。快捷鍵 ctrl 指定編譯器選項和專案配置,值由qmake內部識別並具有特殊意義。以下配置值控制編譯標誌 選項說明 release 專案以release模式構建。如...
QT之專案檔案( pro)詳解
從 開始,到這一行結束。target qtdemo headers include painter.h forms forms painter.ui sources sources main.cpp sources painter.cpp resources qrc painter.qrc grea...