qmake是trolltech公司建立的用來為不同的平台和編譯器書寫makefile的工具。
手寫makefile是比較困難並且容易出錯的,尤其是需要給不同的平台和編譯器組合寫幾個makefile。使用qmake,開發者建立乙個簡單的「專案」檔案並且執行qmake生成適當的makefile。qmake會注意所有的編譯器和平台的依賴性,可以把開發者解放出來只關心他們的**。trolltech公司使用qmake作為qt庫和qt所提供的工具的主要連編工具。
qmake也注意了qt的特殊需求,可以自動的包含moc和uic的連編規則。
qmake 編譯資訊可以通過qmake.conf進行配置。
qt的工程管理檔案常用的主要分為pro、pri、prf、prl四種型別的檔案,其中pro檔案是主檔案,另外三種都可以包含在pro檔案中,他們的書寫規則都遵循qmake的規則。
生成靜態庫時,我們需要使用 config += create_prl 配置,編譯生成和庫檔案同名的 *.prl 檔案;
2、prf特徵檔案,這個檔案主要標識編譯特性,可以使用兩種方式載入
1)config += *prf;
2)load(*prf)。
3、pri配置檔案,通常放置一些通用的配置資訊,進行工程管理。
4、pro工程管理檔案,通常放置與具體工程相關的資訊,以及進行層疊式模組的管理。
1、使用 # 進行注釋;
2、模板變數告訴qmake為這個應用程式生成哪種makefile。
eg:
template = subdirs
subdirs += one
subdirs += two
3、指定生成的應用程式放置的目錄 destdir += ../bin ;
4、指定生成的應用程式名 target = pksystem (和pro檔名相同);
5、配置資訊,config用來告訴qmake關於應用程式的配置資訊。
例如config+= qt warn_on release,其中+=為追加,=為賦值,warn_on為qmake要把編譯器設定為輸出警告資訊的,release部分告訴qmake應用程式必須被連編為乙個發布的應用程式,此處可以使用debug替換。
6、指定uic命令,將.ui檔案轉化成ui_*.**件的存放的目錄 ui_dir += forms ;
7、指定rcc命令,將.qrc檔案轉換成qrc_*.**件的存放目錄
rcc_dir += ../tmp ;
8、指定moc命令,將含q_object的標頭檔案轉換成標準.**件的存放目錄
moc_dir += ../tmp ;
9、指定目標檔案(obj)的存放目錄 objects_dir += ../tmp ;
10、程式編譯時依賴的相關路徑 dependpath += . forms include qrc sources ;
11、標頭檔案包含路徑 includepath += . ;
12、原始檔編碼方式 codecforsrc = gbk ;
13、工程中包含的標頭檔案 headers += *.h ;
14、工程中包含的原始檔sources += *.cpp ;
15、工程中包含的.ui設計檔案 forms += *.ui ;
16、工程中包含的資源檔案 resources += *.qrc ;
17、libs += -l庫路徑 -l庫名 ;
18、定義編譯選項,defines += xx,在.**件中就可以使用:#ifdefine xx;
19、條件編譯 (主要區分不同平台和release、debug版本)
win32
unix
!exists( main.cpp )
win32:debug
config(debug, debug|release)
(注:"{" 必須放置在"條件"的同一行))
20、message(資訊);
21、include(*.pro/*.pri);
22、translations qt語言國際化檔案
23、命令列(配置好qt環境變數)qmake -project 生成pro檔案(需要配置qmake.conf手動修改pro檔案進行處理),qmake *.pro生成makefile檔案,nmake(區分編譯器)編譯即可;
24、qmake -tp vc *.pro(-r)生成vs解決方案;
25、qmake -spec macx-xcode *.pro 生成xcode工程檔案;
26、warn_off - 編譯器會輸出盡可能少的警告資訊;
27、qt += xml 加入qt模組;
28、installs + = target sources 指定安裝路徑;
29、qmake_cxxflags_warn_on c++編譯器警告;
30、qmake_cflags_warn_on c編譯器警告;
31、w34100 unreferenced formal parameter ;
32、w34189 local variable is initialized but not referenced;
33、contains(config,thread)根據thread是否在config中進行編譯。
1、qmake [options] files
1)-help 列出qmake幫助資訊;
2)-o file 直接輸出到檔案file,如果這個選項沒有指定, qmake將會嘗試使用合適的檔名作為輸出,這依賴於當前的執行模式。
3)-d 列出qmake的除錯資訊;
4)-wall qmake將會報告所有知道的警告資訊。
1、2、
3、
Qt解讀之qmake手冊
出處 一.什麼是qmake,以及它的用途 概念 qmake是乙個簡化編譯程式的工具軟體,適用於各個系統平台。作用 生成makefile。根據pro檔案,很少資訊就能生成makefile.用法 1 qmake o makefile hello.pro 生成hello.pro工程的makefile 二....
qt中的qmake命令設定
之前安裝qt 4.7.2,由於習慣了在命令列下編譯原始檔,我在網上搜了一下關於qt環境變數的配置方法,配置很簡單,在 etc profile檔案裡新增下面幾行語句 export qtdir opt qtsdk 2010.05 qt 這個路徑根據自己安裝的位置進行配置 export ld librar...
利用Qt的qmake建立vc工程
1 開啟vc中的終端 開始程式 microsoft visual studio 2005 visual studio tools visual studio 2005 命令提示 2 進入自己的源程式所在的工程目錄,如c build template cd c build template c 3 建...