1 QT的pro檔案詳解

2021-09-14 04:46:38 字數 4589 閱讀 8897

qt是乙個跨平台的c++圖形使用者介面應用程式框架。它為應用程式開發者提供建立藝術級圖形介面所需的所有功能。它是完全物件導向的,很容易擴充套件,並且允許真正的元件程式設計。

跨平台,幾乎支援所有的平台

介面簡單,容易上手,學習qt框架對學習其他框架有參考意義。

一定程度上簡化了記憶體**機制

開發效率高,能夠快速的構建應用程式。

有很好的社群氛圍,市場份額在緩慢上公升。

可以進行嵌入式開發。

指定編譯器選項和專案配置,值由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                                   使用子模板時,此選項指定應該按照目錄列表的順序處理它們。

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。

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巨集的標頭檔案轉換成標準.**件的存放目錄)。

例如: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資源編譯器輸出檔案的目錄(.qrc檔案轉換成qrc_*.**件的存放目錄)。

例如: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

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

例如:模板變數告訴qmake為這個應用程式生成哪種makefile。

例如:template = lib

sources = main.cpp

target = mylib

指定包含使用者介面翻譯文字的翻譯(.ts)檔案列表。

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

例如:unix:ui_dir = ../myproject/ui

win32:ui_dir = c:/myproject/ui

1 QT 檔案操作

模式 值描述qiodevice notopen 0x0000 不開啟qiodevice readonly 0x0001 唯讀方式 qiodevice writeonly 0x0002 只寫方式,如果檔案不存在則會自動建立檔案 qiodevice readwrite readonly writeonl...

QT之專案檔案( pro)詳解

從 開始,到這一行結束。target qtdemo headers include painter.h forms forms painter.ui sources sources main.cpp sources painter.cpp resources qrc painter.qrc grea...

Qt 專案管理檔案 pro 詳解

圖 1 專案檔案的目錄樹 1 專案管理檔案 samp2 1.pro,儲存專案設定的檔案。2 主程式入口檔案 main.cpp,實現 main 函式的程式檔案。3 窗體介面檔案 widget.ui,乙個 xml 格式儲存的窗體上的元件及 其布局的檔案。4 widget.h 是所設計的窗體類的標頭檔案,...