Qt工程pro文件配置详解
文章目錄
- 1 pro文件常用配置
- 1.1 注釋
- 1.2 CONFIG
- 1.3 DEFINES
- 1.4 FORMS
- 1.5 HEADERS
- 1.6 INCLUDEPATH
- 1.7 LIBS
- 1.8 QT
- 1.9 SOURCES
- 1.10 TRANSLATIONS
- 1.11 TARGET
1 pro文件常用配置
Qt 使用 qmake 構(gòu)建工具來構(gòu)建工程,作用和 cmake 一樣,生成 Makefile。Qt 的 pro 文檔則對應(yīng) cmake 的 CMakeLists.txt。
下面講解一下 pro 文檔各個參數(shù)的意義和用法。
1.1 注釋
以“#”開始,到這一行結(jié)束。快捷鍵:Ctrl + /。
1.2 CONFIG
指定編譯器選項(xiàng)和項(xiàng)目配置,值由 qmake 內(nèi)部識別并具有特殊意義。
比如:CONFIG += c++11。
1.3 DEFINES
qmake 添加這個變量的值作為編譯器 C 預(yù)處理器宏(-D 選項(xiàng))。
例如:DEFINES += USE_MY_STUFF。
1.4 FORMS
指定UI文件(參考: Qt Designer Manual)在編譯前被 uic 處理。所有的構(gòu)建這些 UI 文件所需的依賴、頭文件和源文件都會自動被添加到項(xiàng)目中。
例如:
FORMS = mydialog.ui \ mywidget.ui \ myconfig.ui1.5 HEADERS
指定項(xiàng)目中所有的頭文件。qmake 會自動檢測是頭文件的類中是否需要 moc,并增加適當(dāng)?shù)囊蕾囮P(guān)系和文件到項(xiàng)目中,來生成和鏈接 moc 文件。
例如:
HEADERS = myclass.h \ login.h \ mainwindow.hmoc 全稱是 Meta-Object Compiler,也就是“元對象編譯器”。Qt 程序在交由標(biāo)準(zhǔn)編譯器編譯之前,先要使用 moc 分析 C++ 源文件。如果它發(fā)現(xiàn)在一個頭文件中包含了宏 Q_OBJECT,則會生成另外一個 C++ 源文件。這個源文件中包含了Q_OBJECT 宏的實(shí)現(xiàn)代碼。這個新的文件名字將會是原文件名前面加上 moc_ 構(gòu)成。這個新的文件同樣將進(jìn)入編譯系統(tǒng),最終被鏈接到二進(jìn)制代碼中去。因此我們可以知道,這個新的文件不是“替換”掉舊的文件,而是與原文件一起參與編譯。另外,我們還可以看出一點(diǎn),moc 的執(zhí)行是在預(yù)處理器之前。因?yàn)轭A(yù)處理器執(zhí)行之后,Q_OBJECT 宏就不存在了。
1.6 INCLUDEPATH
指定編譯項(xiàng)目時(shí)應(yīng)該被搜索的#include 目錄。
例如:
INCLUDEPATH = c:/msdev/include d:/stl/include
如果路徑包含空格,需要使用引號包含。
1.7 LIBS
指定鏈接到項(xiàng)目中的庫列表。如果使用 Unix -l (library) 和 -L (library path) 標(biāo)志,在
Windows 上 qmake 正確處理庫(也就是說,將庫的完整路徑傳遞給鏈接器),庫必須存在,qmake 會尋找-l 指定的庫所在的目錄。
例如:
1.8 QT
指定項(xiàng)目中使用 Qt 的模塊。
默認(rèn)情況下,QT 包含 core 和 gui,以確保標(biāo)準(zhǔn)的 GUI 應(yīng)用程序無需進(jìn)一步的配置就可以構(gòu)建。如果想建立一個不包含 Qt GUI 模塊的項(xiàng)目,可以使用“ -=”操作符。
下面一行將構(gòu)建一個很小的 Qt 項(xiàng)目:
QT -= gui # 僅僅使用 core 模塊
如果要創(chuàng)建一個界面,里面用到 XML 及網(wǎng)絡(luò)相關(guān)的類,那么需要包含如下模塊:
QT += core gui widgets xml network
1.9 SOURCES
指定項(xiàng)目中所有源文件。
例如:
1.10 TRANSLATIONS
指定包含用戶界面翻譯文本的翻譯(.ts)文件列表。
例如:
TRANSLATIONS += chinese.ts english.ts
1.11 TARGET
指定目標(biāo)文件的名稱。默認(rèn)情況下包含的項(xiàng)目文件的基本名稱。
例如:
總結(jié)
以上是生活随笔為你收集整理的Qt工程pro文件配置详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt界面语言国际化
- 下一篇: Qt配置GUI程序控制台输出