天天看點

Qt之pro配置詳解簡述配置更多參考

使用qt的時候,我們經常會對pro進行一系列繁瑣的配置,為友善大家了解、查找,現将常用的配置進行整理。

<a href="#%e7%ae%80%e8%bf%b0">簡述</a>

<a href="#%e9%85%8d%e7%bd%ae">配置</a>

<a href="#%e6%b3%a8%e9%87%8a">注釋</a>

<a href="#config">config</a>

<a href="#defines">defines</a>

<a href="#dependpath">dependpath</a>

<a href="#destdir">destdir</a>

<a href="#forms">forms</a>

<a href="#headers">headers</a>

<a href="#includepath">includepath</a>

<a href="#libs">libs</a>

<a href="#mocdir">moc_dir</a>

<a href="#objectsdir">objects_dir</a>

<a href="#qt">qt</a>

<a href="#rccdir">rcc_dir</a>

<a href="#resources">resources</a>

<a href="#rcfile">rc_file</a>

<a href="#rcicons">rc_icons</a>

<a href="#sources">sources</a>

<a href="#target">target</a>

<a href="#template">template</a>

<a href="#translations">translations</a>

<a href="#uidir">ui_dir</a>

<a href="#%e6%9b%b4%e5%a4%9a%e5%8f%82%e8%80%83">更多參考</a>

以“#”開始,到這一行結束。

快捷鍵: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選項。這使得它可以執行建構特定任務。

例如:

qmake添加這個變量的值作為編譯器c預處理器宏(-d選項)。

然後就可以在代碼中使用:

往往可以指定項目的特殊版本(比如:正式版、試用版)、對一些特殊功能子產品(比如:加密狗)進行限制等。

指定檢視解決依賴關系的目錄清單,當包含檔案時使用。

指定在何處放置目标檔案。

指定ui檔案(參考: qt designer manual)在編譯前被uic處理。所有的建構這些ui檔案所需的依賴、頭檔案和源檔案都會自動被添加到項目中。

指定項目中所有的頭檔案。

qmake會自動檢測是頭檔案的類中是否需要moc,并增加适當的依賴關系和檔案到項目中,來生成和連結moc檔案。

指定編譯項目時應該被搜尋的#include目錄。

如果路徑包含空格,需要使用引号包含。

指定連結到項目中的庫清單。如果使用unix -l (library) 和 -l (library path) 标志,在windows上qmake正确處理庫(也就是說,将庫的完整路徑傳遞給連結器),庫必須存在,qmake會尋找-l指定的庫所在的目錄。

如果路徑包含空格,需要使用引号包含路徑。

指定來自moc的所有中間檔案放置的目錄(含q_object宏的頭檔案轉換成标準.h檔案的存放目錄)。

指定所有中間檔案.o(.obj)放置的目錄。

指定項目中使用qt的子產品。預設情況下,qt包含core和gui,以確定标準的gui應用程式無需進一步的配置就可以建構。

如果想建立一個不包含qt gui子產品的項目,可以使用“ -=”操作符。

下面一行将建構一個很小的qt項目:

如果要建立一個界面,裡面用到xml及網絡相關的類,那麼需要包含如下子產品:

如果你的項目是一個qt designer插件,使用值uiplugin指定項目建構成庫,但特定的qt designer插件支援,請參考:building and installing the plugin。

指定qt資源編譯器輸出檔案的目錄(.qrc檔案轉換成qrc_*.h檔案的存放目錄)。

指定應用程式資源檔案的名稱。這個變量的值通常是由qmake或qmake.conf處理,很少需要進行修改。

僅适用于windows,指定的圖示應該包含在一個生成的.rc檔案裡。如果rc_file 和res_file變量都沒有設定這才可利用。

指定項目中所有源檔案。

指定目标檔案的名稱。預設情況下包含的項目檔案的基本名稱。

上面項目會生成一個可執行檔案,windows下為myapp.exe,unix下為myapp。

模闆變量告訴qmake為這個應用程式生成哪種makefile。

可供使用的選項:

app

建立一個用于建構應用程式的makefile(預設)。

lib

建立一個用于建構庫的makefile。

subdirs

建立一個用于建構目标子目錄的makefile,子目錄使用subdirs變量指定。

aux

建立一個不建任何東西的makefile。如果沒有編譯器需要被調用來建立目标,比如你的項目使用解釋型語言寫的,使用此功能。注:此模闆類型隻能用于makefile-based生成器。特别是,它不會工作在vcxproj和xcode生成器。

vcapp

僅适用于windows。建立一個visual studio應用程式項目。

vclib

僅适用于windows。建立一個visual studio庫項目。

指定包含使用者界面翻譯文本的翻譯(.ts)檔案清單。

指定來自uic的所有中間檔案放置的目錄(.ui檔案轉化成ui_*.h檔案的存放目錄)。

<a href="http://blog.csdn.net/liang19890820/article/details/51994441">qt之資源系統</a>

<a href="http://blog.csdn.net/u011012932/article/details/52702523">qt之生成window資源檔案(.rc 檔案)</a>