qmake手冊——開始

開始

這篇教程會講述qmake的基礎,這本手冊的其他主題包含了有關使用qmake的更多信息。

簡單的開始

假設你已經完成了你的應用的基本實現,並且你已經創建瞭如下文件:
1. hello.cpp
2. hello.h
3. main.cpp
首先,在源代碼所在的目錄用純文本編輯器創建一個叫hello.pro的文本文件,你要做的第一件事
是在該文件中添加幾行來告訴qmake這些源文件和頭文件是你的項目中的一部分。
我們首先要添加源文件到項目中,爲達成這個目的你需要使用”SOURCES“變量,將hello.cpp
加入項目可以這樣做。
SORUCES += hello.cpp
重複這句話將main.cpp加入項目

SOURCES += main.cpp

如果你更喜歡make風格的語法,即一次列出所有文件,你可以使用換行符,就像這樣:

SOURCES += hello.cpp \
main.cpp

既然源文件已經被列入項目文件中了,那麼頭文件也必須被添加。他們的添加方式與源文件完全
相同,除了變量名叫“HEADERS”
當你做完這些事後,你的項目文件應當是這樣的:


  HEADERS += hello.h
  SOURCES += hello.cpp
  SOURCES += main.cpp

目標名稱會自動設置,它與項目文件名相同,只是會添加適合與平臺的後綴。例如,如果項目文件
叫做hello.pro,在Windows上目標將會叫做hello.exe,而在Unix上叫hello。如果你想使用
一個不同的名字的話可以在項目文件中設置:

  TARGET = helloworld

你可以使用qmake來爲你的應用生產makefile,在命令行界面,進入項目目錄,輸入下列命令:

qmake -o Makefile hello.pro

然後根據你使用的編譯器輸入’make‘或’nmake‘
對於Visual Studio用戶,qmake也可以生成VS項目文件,例如:

qmake -tp vc hello.pro

使應用支持調試

一個應用的release版本不包含任何調試符號與信息。在開發過程中,生成一個調試版本的應用
是很有用的。是應用支持調試很容易,只要在項目文件中的CONFIG變量上增加debug即可。
例如:

  CONFIG += debug
  HEADERS += hello.h
  SOURCES += hello.cpp
  SOURCES += main.cpp

就像以前一樣使用qmake生成一個makefile。現在,您將在調試環境中運行應用程序時獲取有用的信息。

添加特定於平臺的源文件

在寫了幾個小時的代碼後,你可以已經開始編寫你的應用程序中特定與平臺的部分了,並且你
決定將平臺相關的代碼分開。所以你現在在你的項目文件中包含了兩個新文件:hellowin.cpp,
hellounix.cpp。我們不能簡單的將這兩個文件添加到SOURCES中,因爲這會將這兩個文件都
添加到makefile中。那麼我們需要做的就是根據我們正在構建的平臺來使用一個將被處理的範圍。
下面是一個簡單的例子,一個針對Windows的域:

  win32 {
      SOURCES += hellowin.cpp
  }

當爲Windows構建項目時,qmake會添加hellowin.cpp到源文件列表中,當爲其他平臺構建時
qmake會簡單的忽略他。現在只需要爲特定於Unix的文件構建一個域即可。
當你完成這些後,你的項目文件看起來像這樣:


  CONFIG += debug
  HEADERS += hello.h
  SOURCES += hello.cpp
  SOURCES += main.cpp
  win32 {
      SOURCES += hellowin.cpp
  }
  unix {
      SOURCES += hellounix.cpp
  }

像之前一樣使用qmake生成makefile

當文件不存在時停止qmake

你可能會需要當某個特定文件不存在時創建一個makefile。我們可以使用“exist()”函數來
檢查一個文件是否存在。我們可以通過使用“error()”函數來停止qmake處理。它與域控制
的作用相同,只是簡單的使用函數來替換域狀態。檢查一個名爲main.cpp的文件如下所示:


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

符號“!”用來表示否定。這意味着:如果文件存在exists( main.cpp )爲真,文件不存在
!exists( main.cpp )爲真。

  CONFIG += debug
  HEADERS += hello.h
  SOURCES += hello.cpp
  SOURCES += main.cpp
  win32 {
      SOURCES += hellowin.cpp
  }
  unix {
      SOURCES += hellounix.cpp
  }
  !exists( main.cpp ) {
      error( "No main.cpp file found" )
  }

像以前一樣使用qmake生成makefile,如果暫時重命名了main.cpp,那你就會看到這個消息
並且qmake將會停止處理。

檢查多種條件

假設你使用Windows並且你希望能夠在命令行中用qDebug()來查看程序運行時的狀態輸出。
想要查看輸出,你必須使用適當的控制檯設置來構建你的應用。我們可以很容易的在“CONFIG”
行中添加“console”來在Windows下的makefile中包含這個設置。但是,假設我們只想在
Windows上運行時添加CONFIG行,並且debug已經在CONFIG行上。這就需要兩個嵌入的域。
第一個創建一個域,然後在它內部創建另一個,將要處理的設置放在第二個範圍內,就像這樣

  win32 {
      debug {
          CONFIG += console
      }
  }

嵌入的域可以使用冒號合併在一起,所以最後的項目文件就像這樣:

  CONFIG += debug
  HEADERS += hello.h
  SOURCES += hello.cpp
  SOURCES += main.cpp
  win32 {
      SOURCES += hellowin.cpp
  }
  unix {
      SOURCES += hellounix.cpp
  }
  !exists( main.cpp ) {
      error( "No main.cpp file found" )
  }
  win32:debug {
      CONFIG += console
  }

就是這樣!您現在已經完成了qmake教程,並已經準備好爲您的開發項目編寫項目文件了。

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