Makefile入門教程
阿新 • • 發佈:2018-09-24
文件中 函數 hello 最小 req 最小值 targe 簡單 分享圖片
Makefile介紹
make是一個命令工具,它解釋Makefile 中的指令(應該說是規則)。在Makefile文件中描述了整個工程所有文件的編譯順序、編譯規則。Makefile 有自己的書寫格式、關鍵字、函數。像C 語言有自己的格式、關鍵字和函數一樣。而且在Makefile 中可以使用系統shell所提供的任何命令來完成想要的工作。
Makefile格式
1 target: prerequisites 2 commands 3 4 5 目標文件: 依賴項 6 命令
最簡單的Makefile
以Hello World為例:
(1) 先編寫好源文件(.c文件),然後在同一目錄下新建名為Makefile(之前首字母必須大寫,現在大小寫都行)的文本文件。
(2) 編寫Mikefile
(3)打開終端,運行make命令,即可生成可執行文件hello,運行hello,即輸出Hello World.
變量的定義及使用
1 CC = gcc #定義變量並賦值 2 CFLAGS = -lm -Wall -g 3 4 hello: hello.c 5 $(CC) $(CFLAGS) hello.c - o hello #引用前面定義的變量,$(變量名),這種形式
實際效果沒變,只是便於修改某些參數
使用變量替換後的情況:
同時編譯多個可執行文件
例如:bar.c包含求數組中最大值函數,foo.c包含求數組中最小值函數,各自對應的頭文件是bar.h、foo.h,main_max調用求最大值函數來打印最大值,main_min調用求最小值函數打印最小值。
Makefile可如下編寫:
1 CC = gcc 2 CFLAGS = -O -Wall -m64 -std=gnu89 3 LIBS = -lm 4 5 all: main_max main_min #必須寫成all這樣的形式,否則只會生成前一個可執行文件main_max 6 7 main_max: main_max.c bar.o foo.o 8 $(CC) main_max.c bar.o foo.o -o main_max 9 10 main_min: main_min.c bar.o foo.o 11 $(CC) main_min.c bar.o foo.o -o main_min12 13 foo.o: foo.c 14 $(CC) -c foo.c 15 16 bar.o: bar.c 17 $(CC) -c bar.c 18 19 .PHONY: clean
20 clean: 21 rm *.o main_max main_min
clean
由於源代碼發布通常不會有可執行文件和.o文件,使用 rm *.o xx(可執行文件名) ,再輸入make clean命令就可以自動清除。
為了避免與名為clean的文件沖突,最好在clean前面加.PHONY。
Makefile入門教程