1. 程式人生 > >Qt 之 pro 配置詳解

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

NginxLocation配置(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 [

Mysqlmy.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的基礎配置分享之後,本次將分享一些工作中項目常用的配置插件、也會包含一些自己了解過覺得不錯的插件,如有分析不到位的,歡迎糾錯,嗯,這些東西文檔都有,大佬可繞過。