1. 注釋
從“#”開始,到這一行結(jié)束。
2. 指定源文件
SOURCES = *.cpp
對于多源文件,可用空格分開,如:SOURCES = 1.cpp 2.cpp3.cpp
或者每一個文件可以被列在一個分開的行里面,通過反斜線另起一行,就像這樣:
SOURCES = hello.cpp \
main.cpp
還有一種是這樣
SOURCES+= hello.cpp
SOURCES +=main.cpp
這種方法中使用“+=”比“=”更安全,因為它只是向已有的列表中添加新的文件,而不是替換整個列表。
3. 指定頭文件
HEADERS = hello.h或者HEADERS += hello.h
列出源文件的任何一個方法對頭文件也都適用。
4. 配置信息
CONFIG用來告訴qmake關(guān)于應(yīng)用程序的配置信息。
CONFIG+= qt warn_on release
在這里使用“+=”,是因為我們添加我們的配置選項到任何一個已經(jīng)存在中。這樣做比使用“=”那樣替換已經(jīng)指定的所有選項是更安全的。
A> qt部分告訴qmake這個應(yīng)用程序是使用Qt來連編的。這也就是說qmake在連接和為編譯添加所需的包含路徑的時候會考慮到Qt庫的。
B> warn_on部分告訴qmake要把編譯器設(shè)置為輸出警告信息的。
C> release部分告訴qmake應(yīng)用程序必須被連編為一個發(fā)布的應(yīng)用程序。在開發(fā)過程中,程序員也可以使用debug來替換release
5. 指定目標(biāo)文件名
TARGET = filename
如果不設(shè)置該項目,目標(biāo)名會被自動設(shè)置為跟項目文件一樣的名稱
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上的時候,它就會把hello_win.cpp添加到源文件列表中。如果qmake運(yùn)行在其它平臺上的時候,它會很簡單地把這部分忽略。
8. 如果一個文件不存在,停止qmake
如果某一個文件不存在的 時候,你也許不想生成一個Makefile。我們可以通過使用exists()函數(shù)來檢查一個文件是否存在。我們可以通過使用error()函數(shù)把正在運(yùn) 行的qmake停下來。這和作用域的工作方式一樣。只要很簡單地用這個函數(shù)來替換作用域條件。對main.cpp文件的檢查就像這樣:
!exists( main.cpp ) {
error( "No main.cpp file found")
}
“!”用來否定這個測試,比如,如果文件存在,exists( main.cpp)是真,如果文件不存在,!exists( main.cpp )是真。
9. 檢查多于一個的條件
假設(shè)你使用Windows并且當(dāng)你在命令 行運(yùn)行你的應(yīng)用程序的時候你想能夠看到qDebug()語句。除非你在連編你的程序的時候使用console設(shè)置,你不會看到輸出。我們可以很容易地把 console添加到CONFIG行中,這樣在Windows下,Makefile就會有這個設(shè)置。但是如果告訴你我們只是想在當(dāng)我們的應(yīng)用程序運(yùn)行在 Windows下并且當(dāng)debug已經(jīng)在CONFIG行中的時候,添加console。這需要兩個嵌套的作用域;只要生成一個作用域,然后在它里面再生成 另一個。把設(shè)置放在最里面的作用域里,就像這樣:
win32 {
debug {
CONFIG += console
}
}
嵌套的作用域可以使用冒號連接起來,像這樣:
win32:debug {
CONFIG += console
}
10. 摸板
模板變量告訴qmake為這個應(yīng)用程序生成哪種makefile。下面是可供使用的選擇:
A> app -建立一個應(yīng)用程序的makefile。這是默認(rèn)值,所以如果模板沒有被指定,這個將被使用。
B> lib - 建立一個庫的makefile。
C> vcapp - 建立一個應(yīng)用程序的VisualStudio項目文件。
D> vclib - 建立一個庫的VisualStudio項目文件。
E> subdirs -這是一個特殊的模板,它可以創(chuàng)建一個能夠進(jìn)入特定目錄并且為一個項目文件生成makefile并且為它調(diào)用make的makefile。
11. 生成Makefile
當(dāng)你已經(jīng)創(chuàng)建好你的項目文件,生成Makefile就很容易了,你所要做的就是先到你所生成的項目文件那里然后輸入:
Makefile可以像這樣由“.pro”文件生成:
qmake -oMakefile hello.pro
對于VisualStudio的用戶,qmake也可以生成“.dsp”文件,例如:
qmake -tvcapp -o hello.dsp hello.pro