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檔案簡介
- Qt專案檔案.proQT
- GNU工程管理器make與Makefile教程
- Qt的.pro檔案格式解析QT
- Qt 程式設計 —— 專案工程檔案(.pro)介紹 【學習筆記】QT程式設計筆記
- qt 使用qmake pro檔案新增 ico圖示,程式執行時顯示圖示,exe也顯示圖示QT
- makefile檔案案例
- Makefile檔案是什麼?
- Android Mk Application Mk make makefile筆記AndroidAPP筆記
- 如何在Windows下使用make編譯MakefileWindows編譯
- Linux 自動化構建工具 make/MakefileLinux
- 11.使用make更新歸檔檔案
- makefile&Android mk檔案中列印logAndroid
- Android OTA升級(一)之Makefile檔案分析Android
- Coreseek 安裝出現 Makefile.in 檔案找不到
- 報錯:Qt 開啟專案找不到Qt自己的標頭檔案QT
- QT串列埠助手(五):檔案操作QT串列埠
- .gitignore檔案配置:Altium Designer工程檔案型別Git型別
- ASP.NET工程檔案(.csproj)檔案解讀ASP.NET
- SyncBird Pro檔案傳輸工具
- Qt 檔案模型(QFileSystemModel)詳細介紹QT模型
- QT 檔案相對路徑載入QT
- qt的工程,轉到vs後,中的檔案都編譯不過,解決辦法QT編譯
- Rocky9安裝python3.6報錯 make: *** [Makefile:1102: install] Error 139PythonError
- pdfFactory Pro 8,PDF檔案印表機
- 克隆git工程檔案的方法Git
- C++ Qt開發:QFileSystemModel檔案管理元件C++QT元件
- 新建一個最小的Makefile工程(C語言)C語言
- 【Qt 專欄】檔案對話方塊 檔案的彈窗選擇-QFileDialogQT
- Acrobat Pro DC 2022,PDF檔案編輯BAT
- Araxis Merge Pro 2022,視覺化檔案視覺化
- Ashampoo Backup Pro 16,檔案備份工具
- Ghost Buster pro Mac(檔案清理工具)Mac
- C++ Qt開發:QFileSystemWatcher檔案監視元件C++QT元件
- mac檔案管理工具:DEVONthink Pro for MacMacdev
- 中文最新KeyShot 2023.3 Pro 許可檔案12.2.1.2
- 如何在File Cabinet Pro中對檔案排序?排序