Qt qmake入門指南

2021-10-16 17:09:31 字數 2993 閱讀 3209

1、將examples/qmake/tutorial下的檔案複製到某個目錄下,

ps:可以看出這些檔案使用了qt

2、使用純文字編輯器建立乙個hello.pro

hello.pro內容如下:

(1)使用sources變數將原始檔新增到專案檔案中

sources +

= hello.cpp

sources +

= main.cpp

sources = hello.cpp \

main.cpp

(2)使用headers變數將原始檔新增到專案目錄中

headers +

= hello.h

(3)現在,hello.pro內容如下

headers +

= hello.h

sources +

= hello.cpp

sources +

= main.cpp

3、使用qmake為應用程式生成makefile

可以看到生成了makefile

ps:對於visual studio使用者,qmake也可以生成visual studio專案檔案:

qmake -tp vc hello.pro
4、然後輸入make命令,這取決於您使用的編譯器。

應用程式的發行版不包含任何除錯符號或者其他除錯資訊。在開發過程中,產生具有相關資訊的應用程式的除錯版本非常有用。我們可以使用config實現

例如,hello.pro內容如下:

config +

= debug

headers +

= hello.h

sources +

= hello.cpp

sources +

= main.cpp

像以前一樣使用qmake生成makefile。現在,在除錯環境中執行應用程式時,您將獲得有關該應用程式的有用資訊

經過幾個小時的編碼,您可能已經在應用程式的特定於平台的部分開始,並決定將依賴於平台的**分開。因此,您現在有兩個新檔案要包含到您的專案檔案中:hellowin.cpp和hellounix.cpp。我們不能僅僅將它們新增到sources變數中,因為那樣會將兩個檔案都放入makefile中。因此,我們在這裡要做的是使用乙個範圍,該範圍將根據我們要構建的平台進行處理。

win32
當為windows構建時,qmake將新增hellowin.cpp到原始檔列表中。在為任何其他平台構建時,qmake只會忽略它。現在剩下要做的就是為unix專用檔案建立作用域。

完成此操作後,hello.pro內容如下:

config +

= debug

headers +

= hello.h

sources +

= hello.cpp

sources +

= main.cpp

win32

unix

像以前一樣使用qmake生成makefile。

如果某個檔案不存在,則可能不想建立makefile。我們可以使用exist()函式檢查檔案是否存在。我們可以使用error()函式停止qmake的處理。這與作用域的工作方式相同。只需用功能替換範圍條件。檢查名為main.cpp的檔案如下所示:

!

exists

( main.cpp )

完成此操作後,hello.pro內容如下:

config +

= debug

headers +

= hello.h

sources +

= hello.cpp

sources +

= main.cpp

win32

unix

!exists

( main.cpp )

win32 

}

完成此操作後,hello.pro內容如下:

config +

= debug

headers +

= hello.h

sources +

= hello.cpp

sources +

= main.cpp

win32

unix

!exists

( main.cpp )

win32:debug

Qt qmake建立專案檔案

專案檔案包含qmake生成應用程式,庫和外掛程式所需的所有資訊。通常,您使用一系列宣告來指定專案中的資源,但是對簡單程式設計結構的支援使您能夠描述針對不同平台和環境的不同構建過程 qmake使用的專案檔案格式可用於支援簡單和相當複雜的構建系統。簡單的專案檔案使用簡單的宣告式樣式,定義標準變數以指示專...

python入門指南 Python 入門指南

python 入門指南 release 3.6.3 date dec 10,2017 python 是一門簡單易學且功能強大的程式語言。它擁有高效的高階資料結構,並且能夠用簡單而又高效的方式進行物件導向程式設計。python 優雅的語法和動態型別,再結合它的解釋性,使其在大多數平台的許多領域成為編寫...

Qt qmake 條件判斷的坑

qt qmake中可以使用條件判斷來載入不同項,如 defines ffmpeg 4 2 2 contains defines,ffmpeg 4 0 2 contains defines,ffmpeg 4 2 2 可正常判斷但contains 的括號如果另起一行,則不能正常列印。如 defines ...