在QT中,有一個工具qmake可以生成一個makefile文件,它是由.pro文件生成而來的,.pro文件的寫法如下:

1. 註釋
從“#”開始,到這一行結束。

2. 指定源文件
SOURCES = *.cpp
在QT中,有一個工具qmake可以生成一個makefile文件,它是由.pro文件生成而來的,.pro文件的寫法如下:

對於多源文件,可用空格分開,如: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關於應用程序的配置信息。

    CONFIG+= qt warn_on release

在這裏使用“+=”,是因爲我們添加我們的配置選項到任何一個已經存在中。這樣做比使用“=”那樣替換已經指定的所有選項是更安全的。
A> qt部分告訴qmake這個應用程序是使用Qt來連編的。這也就是說qmake在連接和爲編譯添加所需的包含路徑的時候會考慮到Qt庫的。
B> warn_on部分告訴qmake要把編譯器設置爲輸出警告信息的。
C> release部分告訴qmake應用程序必須被連編爲一個發佈的應用程序。在開發過程中,程序員也可以使用debug來替換release

5. 指定目標文件名
TARGET = filename

如果不設置該項目,目標名會被自動設置爲跟項目文件一樣的名稱

6. 添加界面文件(ui)
INTERFACES = filename.ui

7. 平臺相關性處理
我們在這裏需要做的是根據qmake所運行的平臺來使用相應的作用域來進行處理。爲Windows平臺添加的依賴平臺的文件的簡單的作用域看起來就像這樣:

win32 {
SOURCES += hello_win.cpp
}

所以如果qmake運行在Windows上的時候,它就會把hello_win.cpp添加到源文件列表中。如果qmake運行在其它平臺上的時候,它會很簡單地把這部分忽略。

8. 如果一個文件不存在,停止qmake
如果某一個文件不存在的時候,你也許不想生成一個Makefile。我們可以通過使用exists()函數來檢查一個文件是否存在。我們可以通過使用error()函數把正在運行的qmake停下來。這和作用域的工作方式一樣。只要很簡單地用這個函數來替換作用域條件。對main.cpp文件的檢查就像這樣:

!exists( main.cpp ) {
  error( "No main.cpp file found")
}

“!”用來否定這個測試,比如,如果文件存在,exists( main.cpp)是真,如果文件不存在,!exists( main.cpp )是真。

9. 檢查多於一個的條件
假設你使用Windows並且當你在命令行運行你的應用程序的時候你想能夠看到qDebug()語句。除非你在連編你的程序的時候使用console設置,你不會看到輸出。我們可以很容易地把 console添加到CONFIG行中,這樣在Windows下,Makefile就會有這個設置。但是如果告訴你我們只是想在當我們的應用程序運行在 Windows下並且當debug已經在CONFIG行中的時候,添加console。這需要兩個嵌套的作用域;只要生成一個作用域,然後在它裏面再生成另一個。把設置放在最裏面的作用域裏,就像這樣:

win32 {
  debug {
     CONFIG += console
  }
}

嵌套的作用域可以使用冒號連接起來,像這樣:

win32:debug {
CONFIG += console
}

10. 摸板
模板變量告訴qmake爲這個應用程序生成哪種makefile。下面是可供使用的選擇:

A> app -建立一個應用程序的makefile。這是默認值,所以如果模板沒有被指定,這個將被使用。
B> lib - 建立一個庫的makefile。
C> vcapp - 建立一個應用程序的VisualStudio項目文件。
D> vclib - 建立一個庫的VisualStudio項目文件。
E> subdirs -這是一個特殊的模板,它可以創建一個能夠進入特定目錄並且爲一個項目文件生成makefile並且爲它調用make的makefile。

11. 生成Makefile
當你已經創建好你的項目文件,生成Makefile就很容易了,你所要做的就是先到你所生成的項目文件那裏然後輸入:

Makefile可以像這樣由“.pro”文件生成:

    qmake -oMakefile hello.pro

對於VisualStudio的用戶,qmake也可以生成“.dsp”文件,例如:

    qmake -tvcapp -o hello.dsp hello.pro
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章