Makefile入門教程


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_min 12 
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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM