qmake、.pro(Qt工程檔案)、make、Makefile
簡單介紹下Qt 程式的構建過程
構建工具的應用場景(可能情境表達更準確),也就是構建工具是為了解決什麼問題?
通常一個商業軟體專案,其工程通常由多個原始檔、標頭檔案以及外部庫組成,利用編譯器將工程編譯成可執行檔案。但是通常在產品開發過程中,不可避免的會新增、修改或者刪除(增刪改查)原始檔(原始檔 + 標頭檔案)和庫,想要得到能夠反映當前工程狀態的可執行檔案,這就需要重新編譯和連結和上一次工程狀態相比受影響的檔案或者庫。經常這種更改-重新編譯的過程,通常會發生多次。
引用Qt設計模式中的原文:“為了跟蹤工程的全部部分,要求有一種機制來精確地指定涉及輸入檔案、建立程式時所需的工具、中間目標檔案和他們的依賴關係,以及最終的可執行目標檔案”。
編譯簡單的程式,可以直接使用命令列如下,可見對於複雜的工程,這個工作量就顯得很繁瑣:
g++ 1.cpp 2.cpp -o app
make
用於處理工程建立任務最廣泛使用的工具是make,它會從Makefile 檔案中讀取工程規範的細節,也會讀取提供給編譯器的指令,Makefile與shell 指令碼類似,其中至少會包含如下資訊:
- 用於建立某種檔案型別的規則(例如:為了從.cpp檔案得到.o檔案,必須對.cpp檔案執行gcc -c指令)
- 原始檔列表和標頭檔案列表
- 目標檔案指定了必須建立哪些可執行檔案(或者庫)
- 依賴關係,列出當前某些檔案發生改變時,哪些目標檔案必須重新建立
預設情況下,make命令會從當前的工作目錄下載入名稱為Makefile的檔案,並執行指定的編譯連結指令
構建Qt應用程式流程如下:
Qt Creator IDE提供了一個qmake工具,它會自動產生Makefile檔案,make 命令的執行實際上是通過單擊如下圖的“錘子”按鈕來實現的
相關文章
- make makefile cmake qmake都是什麼,有什麼區別?
- GNU make-Makefile檔案簡介
- GNU工程管理器make與Makefile教程
- Qt的.pro檔案格式解析QT
- qt 使用qmake pro檔案新增 ico圖示,程式執行時顯示圖示,exe也顯示圖示QT
- Qt 程式設計 —— 專案工程檔案(.pro)介紹 【學習筆記】QT程式設計筆記
- makefile檔案案例
- Makefile檔案是什麼?
- 如何在Windows下使用make編譯MakefileWindows編譯
- 11.使用make更新歸檔檔案
- Android Mk Application Mk make makefile筆記AndroidAPP筆記
- Linux 自動化構建工具 make/MakefileLinux
- Makefile常見錯誤解析 - make: *** No rule to make target 'test1.o', needed by 'test2'. Stop
- makefile&Android mk檔案中列印logAndroid
- makefile檔案及VC++自帶的NmakeC++
- Linux平臺Makefile檔案的編寫Linux
- Qt之qss檔案編寫QT
- Coreseek 安裝出現 Makefile.in 檔案找不到
- Android OTA升級(一)之Makefile檔案分析Android
- qt-5.6.0 移植之qt檔案系統的建立QT
- Makefile之大型工程專案子目錄Makefile的一種通用寫法
- 報錯:Qt 開啟專案找不到Qt自己的標頭檔案QT
- QT串列埠助手(五):檔案操作QT串列埠
- (轉)Qt之qss檔案編寫QT
- Laravel 的 make:auth Artisan 命令到底生成了哪些檔案?Laravel
- SyncBird Pro檔案傳輸工具
- 【轉】vs2010開啟qt的.pro檔案時錯誤解決辦法QT
- Makefile 自動生成標頭檔案的依賴關係
- Linux學習筆記——例說makefile 多個檔案Linux筆記
- QT 檔案相對路徑載入QT
- ASP.NET工程檔案(.csproj)檔案解讀ASP.NET
- qt的工程,轉到vs後,中的檔案都編譯不過,解決辦法QT編譯
- pdfFactory Pro 8,PDF檔案印表機
- 新建一個最小的Makefile工程(C語言)C語言
- Linux學習筆記——例說makefile 單個C檔案Linux筆記
- Linux 環境下 Makefile 檔案製作淺談(一)(轉)Linux
- Linux 環境下 Makefile 檔案製作淺談(二)(轉)Linux
- Qt通過Http上傳檔案(路過)QTHTTP