Qt 之 pro 配置詳解
簡述
使用Qt的時候,我們經常會對pro進行一系列繁瑣的配置,為方便大家理解、查詢,現將常用的配置進行整理。
|
配置
註釋
以“#”開始,到這一行結束。
快捷鍵:Ctrl + /
CONFIG
指定編譯器選項和專案配置,值由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) {
unix: TARGET = $$join(TARGET,,,_debug)
else: TARGET = $$join(TARGET,,,d)
}
DEFINES
qmake新增這個變數的值作為編譯器C前處理器巨集(-D選項)。
例如:
DEFINES += USE_MY_STUFF
然後就可以在程式碼中使用:
#ifdef USE_MY_STUFF
// TODO
#else
// TODO
#endif
往往可以指定專案的特殊版本(比如:正式版、試用版)、對一些特殊功能模組(比如:加密狗)進行限制等。
DEPENDPATH
指定檢視解決依賴關係的目錄列表,當包含檔案時使用。
例如:
DEPENDPATH += . forms include qrc sources
DESTDIR
指定在何處放置目標檔案。
例如:
DESTDIR = ../../lib
FORMS
指定UI檔案(參考: Qt Designer Manual)在編譯前被uic處理。所有的構建這些UI檔案所需的依賴、標頭檔案和原始檔都會自動被新增到專案中。
例如:
FORMS = mydialog.ui \
mywidget.ui \
myconfig.ui
HEADERS
指定專案中所有的標頭檔案。
qmake會自動檢測是標頭檔案的類中是否需要moc,並增加適當的依賴關係和檔案到專案中,來生成和連結moc檔案。
例如:
HEADERS = myclass.h \
login.h \
mainwindow.h
INCLUDEPATH
指定編譯專案時應該被搜尋的#include目錄。
例如:
INCLUDEPATH = c:/msdev/include d:/stl/include
如果路徑包含空格,需要使用引號包含。
win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"
LIBS
指定連結到專案中的庫列表。如果使用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_DIR
指定來自moc的所有中間檔案放置的目錄(含Q_OBJECT巨集的標頭檔案轉換成標準.h檔案的存放目錄)。
例如:
unix:MOC_DIR = ../myproject/tmp
win32:MOC_DIR = c:/myproject/tmp
OBJECTS_DIR
指定所有中間檔案.o(.obj)放置的目錄。
例如:
unix:OBJECTS_DIR = ../myproject/tmp
win32:OBJECTS_DIR = c:/myproject/tmp
QT
指定專案中使用Qt的模組。預設情況下,QT包含core和gui,以確保標準的GUI應用程式無需進一步的配置就可以構建。
如果想建立一個不包含Qt GUI模組的專案,可以使用“ -=”操作符。
下面一行將構建一個很小的Qt專案:
QT -= gui # 僅僅使用core模組
如果要建立一個介面,裡面用到XML及網路相關的類,那麼需要包含如下模組:
QT += core gui widgets xml network
如果你的專案是一個Qt Designer外掛,使用值uiplugin指定專案構建成庫,但特定的Qt Designer外掛支援,請參考:Building and Installing the Plugin。
RCC_DIR
指定Qt資源編譯器輸出檔案的目錄(.qrc檔案轉換成qrc_*.h檔案的存放目錄)。
例如:
unix:RCC_DIR = ../myproject/resources
win32:RCC_DIR = c:/myproject/resources
RESOURCES
指定資原始檔 (qrc) 的名稱,參考:Qt之資源系統
例如:
RESOURCES += Resource/resource.qrc
RC_FILE
指定應用程式資原始檔的名稱。這個變數的值通常是由qmake或qmake.conf處理,很少需要進行修改。
例如:
RC_FILE += myapp.rc
RC_ICONS
僅適用於Windows,指定的圖示應該包含在一個生成的.rc檔案裡。如果RC_FILE 和RES_FILE變數都沒有設定這才可利用。
例如:
RC_ICONS = myapp.ico
SOURCES
指定專案中所有原始檔。
例如:
SOURCES = myclass.cpp \
login.cpp \
mainwindow.cpp
TARGET
指定目標檔案的名稱。預設情況下包含的專案檔案的基本名稱。
例如:
TEMPLATE = app
TARGET = myapp
SOURCES = main.cpp
上面專案會生成一個可執行檔案,Windows下為myapp.exe,Unix下為myapp。
TEMPLATE
模板變數告訴qmake為這個應用程式生成哪種makefile。
可供使用的選項:
選項 | 說明 |
---|---|
app | 建立一個用於構建應用程式的Makefile(預設)。 |
lib | 建立一個用於構建庫的Makefile。 |
subdirs | 建立一個用於構建目標子目錄的Makefile,子目錄使用SUBDIRS變數指定。 |
aux | 建立一個不建任何東西的Makefile。如果沒有編譯器需要被呼叫來建立目標,比如你的專案使用解釋型語言寫的,使用此功能。注:此模板型別只能用於Makefile-based生成器。特別是,它不會工作在vcxproj和Xcode生成器。 |
vcapp | 僅適用於Windows。建立一個Visual Studio應用程式專案。 |
vclib | 僅適用於Windows。建立一個Visual Studio庫專案。 |
例如:
TEMPLATE = lib
SOURCES = main.cpp
TARGET = mylib
TRANSLATIONS
指定包含使用者介面翻譯文字的翻譯(.ts)檔案列表。
例如:
TRANSLATIONS += Resource/myapp_zh.ts \
Resource/myapp_en.ts
UI_DIR
指定來自uic的所有中間檔案放置的目錄(.ui檔案轉化成ui_*.h檔案的存放目錄)。
例如:
unix:UI_DIR = ../myproject/ui
win32:UI_DIR = c:/myproject/ui
更多參考
相關推薦
Qt 之 pro 配置詳解
簡述 使用Qt的時候,我們經常會對pro進行一系列繁瑣的配置,為方便大家理解、查詢,現將常用的配置進行整理。 | 配置 註釋 以“#”開始,到這一行結束。 快捷鍵:Ctrl + / CONFIG 指定編譯器選項和專案配置,值由qmake
Nginx之Location配置詳解(Location匹配順序)
location有”定位”的意思, 主要是根據Uri來進行不同的定位.在虛擬主機的配置中,是必不可少的. location可以把網站的不同部分,定位到不同的處理方式上. 1.location的基礎語
Redis 持久化之 AOF 配置詳解
############################## APPEND ONLY MODE ############################### # By default Redis asynchronously dumps the datase
OKHTTP之快取配置詳解
本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 前言 在Android開發中我們經常要進行各種網路訪問,比如檢視各類新聞、檢視各種圖片。但有一種情形就是我們每次重複傳送的網路請求其實返回的內容都是一樣的。比如一個電影類APP,每一次向
Tomcat工作原理之檔案配置詳解
一、Tomcat目錄|---bin:存放啟動和關閉tomcat指令碼;|---conf:存放不同的配置檔案(server.xml和web.xml);|---doc:存放Tomcat文件;|---lib/japser/common:存放Tomcat執行需要的庫檔案(JARS);
spring之——c3p0配置詳解
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/200
Web.xml配置詳解之context-param
ltr 完成 數據庫 數據 鍵值對 art str htm 方法 轉自:http://blog.csdn.net/liaoxiaohua1981/article/details/6759206 格式定義: [html] view plaincopy
mongo 3.4分片集群系列之六:詳解配置數據庫
初始化 kpi 更新 並且 color tag 成員 gin sha 這個系列大致想跟大家分享以下篇章(我會持續更新的↖(^ω^)↗): 1、mongo 3.4分片集群系列之一:淺談分片集群 2、mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3、mongo
SpringMVC 框架系列之組件概述與配置詳解
align 概述 handle ont htm 配置文件 掃描器 springmvc 解析 在上一篇文章 SpringMVC 框架系列之初識與入門實例 的實例中,我們已經知道,SpringMVC 框架是一個 web 層的框架,本篇文章就詳細解釋一下 SpringMVC 框架
Nginx得Location配置詳解之精準匹配
location的匹配過程一、location 的定義 location 有“定位”的意思,根據Uri來進行不同的定位。 在虛擬主機的配置中,是必不可少得,location可以把網站的不同部分,定位到不同的處理方式上。二、location 的語法 location [
Mysql之my.cnf配置詳解
線程池 ext 自動刪除 statement arr 網絡 決定 而不是 amp Mysql之my.cnf配置詳解 mysql5.6的版本有400多個變量可以配置,可以通過下列命令獲得mysql> show variables; 配置文件參數如下: #客戶端設置,即
Spring 基礎教程之四:JavaBean基本配置詳解
一:xml 裝配JavaBean屬性含義: 1.id:指定該Bean 的唯一標識。 2.class:指定該Bean 的全限定名。 3.name:為該Bean 指定一到多個別名。多個別名可以用“,”和“;”分割。
Spring-boot入門之配置詳解
1.配置檔案 spring-boot預設有兩種配置檔案 appliation.properties appliation.yml 配置檔案預設放在src/main/resources目錄或者是類路徑/config下 配置檔案的作用:修改sprin
spring boot之配置詳解
spring boot支援的配置檔案 spring boot支援兩種型別的配置檔案,一種是傳統的預設配置檔案application.properties ,還有一種是現在被廣泛推薦使用的YAML檔案。書寫上properties是採用鍵值對的形式來表示,而YAML是以類似大綱的縮排形式,這
webpack4配置詳解之慢嚼細嚥
前言 經常會有群友問起webpack、react、redux、甚至create-react-app配置等等方面的問題,有些是我也不懂的,慢慢從大家的相互交流中,也學到了不少。 今天就嘗試著一起來聊聊Webpack吧,旨在幫大家加深理解、新手更容易上路,都能從0到1搭建配置自定屬於自己的腳手架,或
Java程式設計師從笨鳥到菜鳥之(七十二)細談Spring(四)利用註解實現spring基本配置詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Struts學習之Message Resources配置詳解
目錄 一、概述 二、用法 三、建立資源包 四、配置 五、資原始檔放在哪裡 六、Tags 七、Actions 八、國際化 九、JSTL 十、結論 一、概述 Message Resources訊息
webpack4配置詳解之新手上路初探
前言 經常會有群友問起webpack、react、redux、甚至create-react-app配置等等方面的問題,有些是我也不懂的,慢慢從大家的相互交流中,也學到了不少。 今天就嘗試著一起來聊聊Webpack吧,旨在幫大家加深理解、新手更容易上路,都能從0到1搭建配置自定屬於自己的腳手架
webpack4配置詳解之常用外掛分享
前言 繼上一次webpack的基礎配置分享之後,本次將分享一些工作中專案常用的配置外掛、也會包含一些自己瞭解過覺得不錯的外掛,如有分析不到位的,歡迎糾錯,嗯,這些東西文件都有,大佬可繞過。 Wepack4之後廢棄了很多的外掛,這裡只會講解webpack4還支援的(包含4之前外掛),已經廢棄的將
webpack4配置詳解之常用插件分享
dom turn false 所想 感謝 建議 tro isp 提取 前言 繼上一次webpack的基礎配置分享之後,本次將分享一些工作中項目常用的配置插件、也會包含一些自己了解過覺得不錯的插件,如有分析不到位的,歡迎糾錯,嗯,這些東西文檔都有,大佬可繞過。