Qt .pro文件的一些用法


i)       我學習Qt的第一本書籍是Mark Summerfield等編寫的《C++ GUI Qt 4編程(第2版)》,但當時使用的是Qt 5.8開發環境。因此在Qt 5及其以上版本的開發環境實踐該書代碼時需要在.pro文件中寫入:QT += widgets。

ii)      quote關鍵字用於引用目錄, 等同於定義一個環境變量。

iii)     INCLUDEPATH和DEPENDPATH的路徑就是其字面路徑,如果字面路徑還有子目錄,子目錄是不會被檢索到的。

iv)     如果需要利用Qt的翻譯功能, 則需要寫: TRANSLATION += <.pro's name>_ZH_CN.ts。這里語言和區域名字一定要嚴格,否則之后生成的同名.qm文件無法被Qt翻譯器加載。

v)      如果需要利用預編譯功能以加快編譯速度,則需要寫:PRECOMPILED_HEADER += <需要預編譯的頭文件>,可在Qt的項目中添加一個.h文件,里邊include要預編譯的頭文件,這樣可以加快編譯速度。常用的頭文件有: <QtGui>, <QtCore>, <QtWidgets>等。

vi)     如果需要利用在多核CPU上的並行編譯功能以加快編譯速度,則需要寫:QMAKE_CXXFLAGS += /MP

注: v), vi)來源於“為什么 Qt Creator 的編譯如此之慢? - 姚冬的回答 - 知乎https://www.zhihu.com/question/23045749/answer/23659031” ,感謝大神的解答!

vii)    如果需要禁用Qt的斷言:需要寫入: DEFINES += QT_NO_DEBUG。這樣斷言就不會生效了。

viii)   $$PWD雖然指項目的頂級目錄, 但是在Qt下, 如果項目是debug版本, 則$$PWD實際指項目"build-*-Debug"目錄下的"debug"目錄; 如果項目是release版本, 則$$PWD實際指項目"build-*-Release"目錄下的"release"目錄。

ix)     "TARGET": 語法: TARGET = <字符串>, 含義: 令生成的exe或者庫文件使用該字符串作為文件名。

x)      "TEMPLATE": 語法: TEMPLATE = app / lib, 含義: app: 生成exe; lib: 生成庫文件。注: 如果某個項目的*.pro文件中僅有"TEMPLATE = lib", 則生成動態庫。

xi)     "DESTDIR": 語法: DESTDIR = <字符串>, 含義: 生成的庫或exe的存放位置, "/"符號會自動適應windows平台, 如果沒有指定對應的目錄, Qt會自動創建。

xii)    如果僅僅指定了"DESTDIR"和"DLLDESTDIR", 那么兩個目錄下都會生成動態庫; 如果指定CONFIG += staticlib, 就會補充生成靜態庫了。

xiii)   為編譯的Debug庫添加d后綴, 需要在.pro文件中寫入:
         !debug_and_release|build_pass {
             CONFIG(debug, debug|release) {
                 TARGET = $$member(TARGET, 0)d
             }
         }
         這樣Debug版的some庫及其.pdb文件名就是: somed.lib及somed.pdb; Release版的some庫文件名就是: some.lib了。

注: xiii)參考了QtitanRibbon庫源代碼的.pro文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM