makefile檔案編寫教程

2021-10-06 09:40:28 字數 1951 閱讀 7144

1.make介紹

2.makefile檔案的命名

3.makefile中的規則

makefile中的規則組成:目標,依賴,命令,具體格式如下:

目標:依賴

(tab縮排) 命令

makefile中由一條或多條規則組成

4.makefile的編寫

依賴存在,判斷是否需要更新:

第二個版本的缺點:makefile檔案中有很多內容是冗餘的

具體例項如下所示,第三個版本

makefile自帶的變數:大寫

自動變數:自動變數只能在規則的命令中使用!

dl@cdl-inspiron-5421:~/cpp_tutorials/makefile$ vim makefile 

cdl@cdl-inspiron-5421:~/cpp_tutorials/makefile$ cat makefile

obj = add.o main.o sub.o

$(target):$(obj)

gcc $(obj) -o $(target)

# 也可以使用自動變數

gcc $^ -o $@

%.o:%.c

gcc -c $< -o $@

cdl@cdl-inspiron-5421:~/cpp_tutorials/makefile$ rm *.o

cdl@cdl-inspiron-5421:~/cpp_tutorials/makefile$ make

cc -c -o add.o add.c

cc -c -o main.o main.c

cc -c -o sub.o sub.c

模式匹配:%.o:%.c

add.o:add.c

gcc -c add.c -o add.o

main.o:main.c

gcc -c main.c -o main.o

5.makefile中的函式

cdl@cdl-inspiron-5421:~/cpp_tutorials/makefile$ vim makefile 

cdl@cdl-inspiron-5421:~/cpp_tutorials/makefile$ cat makefile

src = $(wildcard ./*.c)

obj = $(patsubst %..c, %..o, $(src))

$(target):$(obj)

gcc $^ -o $@

%..o:%..c

gcc -c $< -o $@

cdl@cdl-inspiron-5421:~/cpp_tutorials/makefile$ make

sum=36

6.makefile中新增專案清理功能

clean:
.phony:clean
cdl@cdl-inspiron-5421:~/cpp_tutorials/makefile$ cat makefile 

src = $(wildcard ./*.c)

obj = $(patsubst %..c, %..o, $(src))

$(target):$(obj)

gcc $^ -o $@

%..o:%..c

gcc -c $< -o $@

.phony:clean

clean:

-mkdir /abc

-rm $(obj) $(target) -f

makefile檔案編寫

hello.c include include function.h int main function.c includeint fun1 int fun2 int fun3 function.h ifndef fun h define fun h int fun1 void int fun2 v...

Makefile檔案編寫

1 基本大全教程 2 四個賦值的區別 是最基本的賦值 是覆蓋之前的值 是如果沒有被賦值過就賦予等號後面的值 是新增等號後面的值其中 和 的區別是 立馬賦值,是整個makefile檔案讀取完後賦值。1 make會將整個makefile展開後,再決定變數的值。也就是說,變數的值將會是整個makefile...

Makefile檔案編寫

main3.c 1 include 2 include static lib.h 3 include fun.h 4 5int main void static lib.h和 1 extern int add int a,int b 2 extern int sub int a,int b 3 ex...