Makefile 一步入門
前言
Makefile 是一個自動化編譯連結指令碼,通過編寫 Makefile 來自定義專案編譯連結的規則,核心的作用就是實現自動化編譯的效果,只要一個 make 命令,就可以實現整個程式的自動化編譯,極大地提高了軟體開發的效率。 很多大型專案的編譯都是通過 Makefile 來組織的, 如果沒有 Makefile, 那很多專案中各種庫和程式碼之間的依賴關係不知會多複雜.,而且Makefile在絕大多數的IDE 開發環境中都在使用,已經成為一種工程的編譯方法。
怎麼寫
Makefile 指令碼的格式是:
目標檔案:依賴檔案
生成目標的方法
就像這樣:
# 有3個原始檔 Main.c swap.c 標頭檔案1 標頭檔案2
A.out:main.o swap.o
gcc -o main.o swap.o
Main.o:main.c 標頭檔案1
Gcc -c main.c
Swap.o:swap.c 標頭檔案2
Gcc -c swap.c
Clean: Rm main.o swao.o
在當前目錄命令列直接輸入 make,程式立馬自動化編譯,makefile自動化的原理就是:如果目的檔案不存在,或是目的檔案所依賴的後面的 .o 檔案的檔案修改時間要比這個檔案新,那麼,他就會執行後面所定義的命令來生成所需要的目標檔案
makefile的語法糖:
改進1:
如果新增了兩個原始檔,那麼就需要在三個地方新增,依賴行,命令列,clean行 我們可以用一個類似別名的方式去替換,新的寫法如下:
改進2:
使用萬用字元萬用字元: $^所有的依賴檔案 $@所有的目標檔案 所以上面的可以替換成
%.o:%.c
$(CC) -c $^ -o $@
相關文章
- Nginx初步入門Nginx
- makefile快速入門
- makefile從入門到入門
- UnrealEngine - 網路同步入門Unreal
- 一步步入門編寫PHP擴充套件PHP套件
- Makefile學習(一)
- iOS開發UI篇--UICollectionView初步入門iOSUIView
- 跟我一起寫Makefile
- Makefile
- Shell程式設計-01-Shell指令碼初步入門程式設計指令碼
- Linux C++ 開發4 - 入門makefile一篇文章就夠了LinuxC++
- 一文學完makefile語法
- (原創)【B4A】一步一步入門01:簡介、開發環境搭建、HelloWorld開發環境
- 【Makefile】5-Makefile變數的基礎變數
- (原創)【B4A】一步一步入門03:APP名稱、圖示等資訊修改APP
- Linux下的makefile編寫 ——陳皓《跟我一起寫Makefile》學習筆記(二)Linux筆記
- makefile規則
- makefile之overrideIDE
- (原創)【B4A】一步一步入門04:編譯模式、打包為APK、私鑰簽名編譯模式APK
- Android OTA升級(一)之Makefile檔案分析Android
- 新建一個最小的Makefile工程(C語言)C語言
- makefile中的一些引數說明
- makefile檔案案例
- 使用makefile編譯編譯
- Makefile使用教程1
- makefile 簡明教程
- Makefile好助手:pkgconfigGC
- (原創)【B4A】一步一步入門02:視覺化介面設計器、控制元件的使用視覺化控制元件
- Makefile學習之路(2) — Makefile的變數和萬用字元變數字元
- 步入正軌前的思考
- 理想汽車步入中場
- 同步入駐雲棲社群
- 書單丨被強化學習一次次傷害?本書單帶你一步步入門!強化學習
- 一、靜態庫和動態庫,Makefile專案管理專案管理
- makefile =和:=的區別
- Makefile例項學習
- Makefile學習筆記筆記
- 16.Makefile約定