詳解 QT 中.pro文件的寫法
QT 中.pro文件的寫法是本文要介紹的內(nèi)容,在QT中,有一個(gè)工具qmake可以生成一個(gè)makefile文件,它是由.pro文件生成而來的,.pro文件的寫法如下:
1、注釋
從“#”開始,到這一行結(jié)束。
2、指定源文件
- SOURCES = *.cpp
對于多源文件,可用空格分開,如:SOURCES = 1.cpp 2.cpp3.cpp或者每一個(gè)文件可以被列在一個(gè)分開的行里面,通過反斜線另起一行,就像這樣:
- SOURCES = hello.cpp
- main.cpp
一個(gè)更冗長的方法是單獨(dú)地列出每一個(gè)文件,就像這樣:
- SOURCES+= hello.cpp
- SOURCES +=main.cpp
這種方法中使用“+=”比“=”更安全,因?yàn)樗皇窍蛞延械牧斜碇刑砑有碌奈募?,而不是替換整個(gè)列表。
3、指定頭文件
HEADERS = hello.h或者HEADERS += hello.h
列出源文件的任何一個(gè)方法對頭文件也都適用。
4、配置信息
CONFIG用來告訴qmake關(guān)于應(yīng)用程序的配置信息。
- CONFIG+= qt warn_on release
在這里使用“+=”,是因?yàn)槲覀兲砑游覀兊呐渲眠x項(xiàng)到任何一個(gè)已經(jīng)存在中。這樣做比使用“=”那樣替換已經(jīng)指定的所有選項(xiàng)是更安全的。
1、qt部分告訴qmake這個(gè)應(yīng)用程序是使用Qt來連編的。這也就是說qmake在連接和為編譯添加所需的包含路徑的時(shí)候會考慮到Qt庫的。
2、warn_on部分告訴qmake要把編譯器設(shè)置為輸出警告信息的。
3、release部分告訴qmake應(yīng)用程序必須被連編為一個(gè)發(fā)布的應(yīng)用程序。在開發(fā)過程中,程序員也可以使用debug來替換release
5、指定目標(biāo)文件名
- TARGET = filename
如果不設(shè)置該項(xiàng)目,目標(biāo)名會被自動(dòng)設(shè)置為跟項(xiàng)目文件一樣的名稱
6、添加界面文件(ui)
- INTERFACES = filename.ui
7、平臺相關(guān)性處理
我們在這里需要做的是根據(jù)qmake所運(yùn)行的平臺來使用相應(yīng)的作用域來進(jìn)行處理。為Windows平臺添加的依賴平臺的文件的簡單的作用域看起來就像這樣:
- win32 {
- SOURCES += hello_win.cpp
- }
所以如果qmake運(yùn)行在Windows上的時(shí)候,它就會把hello_win.cpp添加到源文件列表中。如果qmake運(yùn)行在其它平臺上的時(shí)候,它會很簡單地把這部分忽略。
8、如果一個(gè)文件不存在,停止qmake
如果某一個(gè)文件不存在的時(shí)候,你也許不想生成一個(gè)Makefile。我們可以通過使用exists()函數(shù)來檢查一個(gè)文件是否存在。我們可以通過使用error()函數(shù)把正在運(yùn)行的qmake停下來。這和作用域的工作方式一樣。只要很簡單地用這個(gè)函數(shù)來替換作用域條件。對main.cpp文件的檢查就像這樣:
- !exists( main.cpp ) {
- error( "No main.cpp file found")
- }
“!”用來否定這個(gè)測試,比如,如果文件存在,exists( main.cpp)是真,如果文件不存在,!exists( main.cpp )是真。
9、檢查多于一個(gè)的條件
假設(shè)你使用Windows并且當(dāng)你在命令行運(yùn)行你的應(yīng)用程序的時(shí)候你想能夠看到qDebug()語句。除非你在連編你的程序的時(shí)候使用console設(shè)置,你不會看到輸出。我們可以很容易地把console添加到CONFIG行中,這樣在Windows下,Makefile就會有這個(gè)設(shè)置。但是如果告訴你我們只是想在當(dāng)我們的應(yīng)用程序運(yùn)行在Windows下并且當(dāng)debug已經(jīng)在CONFIG行中的時(shí)候,添加console。這需要兩個(gè)嵌套的作用域;只要生成一個(gè)作用域,然后在它里面再生成另一個(gè)。把設(shè)置放在最里面的作用域里,就像這樣:
- win32 {
- debug {
- CONFIG += console
- }
- }
嵌套的作用域可以使用冒號連接起來,像這樣:
- win32:debug {
- CONFIG += console
- }
10、摸板
模板變量告訴qmake為這個(gè)應(yīng)用程序生成哪種makefile。下面是可供使用的選擇:
1、app -建立一個(gè)應(yīng)用程序的makefile。這是默認(rèn)值,所以如果模板沒有被指定,這個(gè)將被使用。
2、lib - 建立一個(gè)庫的makefile。
3、 vcapp - 建立一個(gè)應(yīng)用程序的VisualStudio項(xiàng)目文件。
4、vclib - 建立一個(gè)庫的VisualStudio項(xiàng)目文件。
4、 subdirs -這是一個(gè)特殊的模板,它可以創(chuàng)建一個(gè)能夠進(jìn)入特定目錄并且為一個(gè)項(xiàng)目文件生成makefile并且為它調(diào)用make的makefile。
11、生成Makefile
當(dāng)你已經(jīng)創(chuàng)建好你的項(xiàng)目文件,生成Makefile就很容易了,你所要做的就是先到你所生成的項(xiàng)目文件那里然后輸入:
Makefile可以像這樣由“.pro”文件生成:
- qmake -oMakefile hello.pro
對于VisualStudio的用戶,qmake也可以生成“.dsp”文件,例如:
- qmake -tvcapp -o hello.dsp hello.pro
附加:
.pro 文件預(yù)定義宏設(shè)置
- CONFIG(release, debug|release) {
- DEFINES += MYRELEASE
- }
- else {
- DEFINES += MYDEBUG
- }
小結(jié):有關(guān)詳解 QT 中.pro文件的寫法的內(nèi)容介紹完了,希望本文對你有幫助,更多內(nèi)容請參考編輯推薦。