Qt程式學習(一) pro檔案的寫法

2021-07-16 12:27:39 字數 2379 閱讀 8366

qmake命令簡介

為了介紹pro檔案,就不得不先提一下qmake命令了。因為qmake命令就是為了讓pro檔案轉變為makefile檔案而存在的!

假如有乙個studyproject.pro檔案,如果想要直接命令列方式生成makefile檔案,可以輸入:

qmake studyproject.pro

之後,就可以呼叫make或者nmake編譯工程。也可以輸入以下命令:

qmake -tp vc studyproject.pro

來生成乙個microsoft visual studio工程的.dsp/.vproj檔案。

如果你是在mac os x系統上,則需要輸入:

qmake -spec macx-xcode studyproject.pro

來建立乙個xcode工程檔案。

或者輸入:

qmake -spec macx-g++ studyproject.pro

來建立乙個makefile檔案。

這裡的-spec的引數是用來指定平台/編譯器的組合。通常,qmake可以正確地檢查到所在的平台,但是某些情況下則有必要顯示地指定平台情況。比如在linux上面以64位模式呼叫intel c++編譯器(icc)生成makefile則需要輸入:

qmake -spec linux-icc-64 studyproject.pro

來到達這樣的目的。

儘管qmake命令的主要目的是生成*.pro檔案對應的makefile檔案,但是這個命令也可用-project引數在當前目錄下面生成.pro檔案。比如,如果在乙個目錄下面輸入:

qmake -project

則會在當前目錄下面搜尋已知的副檔名檔案(.h/.cpp/.ui等)。然後生成乙個列舉了這些檔案的.pro檔案。

pro檔案的常用變數和引數

在這些變數中,config變數對應的引數比較重要且常用,用來控制編譯過程中的各個方面!因此單獨羅列出來。它支援下面這些引數:

pro檔案的基本語法

pro檔案中的條目的語法通常具有以下形式:

variable = values # 注釋

其中variable代表變數,values代表字串列表,注釋則以#開頭,在行尾處結束。例如:

config = qt release warn_off # 將列表["qt","release","warn_off"]賦值給config變數

上面這行會覆蓋config變數以前的各個值,只有+=是用來擴充套件變數的值的,例如:

config = qt

config += release

config += warn_off

這些語句和前面的列子等價,代表將列表[「qt」,」release」,」warn_off」]賦值給config變數。而-=操作符代表從當前的變數中移除所有出現的指定的值。例如:

config = qt release warn_off

config -= qt

會使得config變數的值變為[「release」,」warn_off」]。

pro檔案的列子

在熟悉了基本pro檔案的寫法後,就可以進行一些簡單的程式設計了。當然還有一些pro檔案的語法,以後有機會會繼續提到的。先看乙個簡單的介面的例子。

#include

int main(int argc, char *argv)

將這個檔案命名為main.cpp,然後在在同乙個資料夾下面儲存乙個chapter1.pro檔案,內容是:

qt += widgets

sources += \

main.cpp

然後就可以直接用命令列在此資料夾下面使用qmake工具生成makefile檔案:

qmake chapter1

然後可以使用make工具編譯裡面的程式,就得到可執行程式啦~

QT的pro檔案編寫

下面是cloudcompare中乙個自己寫的外掛程式的pro檔案,pro檔案編寫可按照如下方式寫。新增qt的模組 qt widgets opengl template lib 指明生成的庫的名字 target qsaf 指明編譯依賴路徑 dependpath 包含標頭檔案路徑 includepath...

Qt中的 pro檔案

使用qt嚮導生成的應用程式.pro檔案格式qt core gui 模組的名字 greaterthan qt major version,4 qt widgets target test 應用程式名 原始檔 sources main.cpp mainwindow.cpp 標頭檔案 headers ma...

1 QT的pro檔案詳解

qt是乙個跨平台的c 圖形使用者介面應用程式框架。它為應用程式開發者提供建立藝術級圖形介面所需的所有功能。它是完全物件導向的,很容易擴充套件,並且允許真正的元件程式設計。跨平台,幾乎支援所有的平台 介面簡單,容易上手,學習qt框架對學習其他框架有參考意義。一定程度上簡化了記憶體 機制 開發效率高,能...