Makefile學習筆記

2021-07-02 20:09:30 字數 1628 閱讀 5270

[本文為學習筆記,僅供參考,如有好的建議歡迎指出!]

makefile規則:

目標檔案:依賴檔案

[tab] 命令      //命令前必須有乙個tab

exp:

test:main.c

gcc main.c -o test

隱式規則:

%.o :%.c   // 『%』 同名匹配

變數--類似於c中的巨集,引用方式$(arg)

變數名 = 值 (引用變數可在之後定義)

exp:

a = $(b)

b = hello

output:

echo $(a)

result: hello

變數名 := 值 (立即對引用賦值)

exp:

a = $(b)

b = hello

output:

echo $(a)

result: (空)

變數名 += 值 (追加賦值)

exp:

a = $(b)

b = hello

a += world

output:

echo $(a)

result: hello world

變數名 ?= 值 (若未定義,則定義並賦值,否則不變)

exp:

a = hello

a ?= nice

b ?= god like

output:

echo $(a)

echo $(b)

result: hello

god like

預定義變數

區域性變數 --只能在規則內部用

$^    依賴列表

$@    目標

$<    依賴列表中的第乙個

exp:  

objs := a.c

objs += b.c

targ =  s.o

$(targ) : $(objs)

gcc $^ -o $@    //  == %.o: %.c    gcc $^ -o $@

.phony: clean     //生成偽目標,避免執行make clean時,若當前資料夾存在檔案clean時產生衝突

最後附上乙個綜合例子

1 tag := test

2 obj := main.o fun1.o fun2.o

3 4 $(tag):$(obj)

5 gcc $^ -o $@

6 %.o : %.c

7 gcc $^ -o $@ -c

8 9 clean:

10 rm -f $(obj)

11 rm -f $(tag)

12 13 .phony: clean

makefile學習筆記 makefile概述

20180411 makefile學習筆記 makefile概述 makefile主要是在unix下軟體編譯時寫的,window下一般不用 unix裡makefile做的事 相當於window裡ide所做的事 會不會寫makefile,從乙個側面說明了乙個人是否具備完成大型工程的能力。makefil...

Makefile學習筆記

makefile for boot asm nasm 定義變數 asmflags i include run qemu system i386 hdd boot.img boot.img boot.asm asm boot.asm f bin o boot.img install run clean...

makefile 學習筆記

makefile規則如下所示 目標 依賴檔案列表 命令列表 1 目標通常是要產生的檔名稱,目標可以是可執行檔案或obj檔案,也可是乙個動作的名稱.2 依賴檔案是用來輸入從而產生目標的檔案.乙個目標通常有幾個依賴檔案.1 make支援三種萬用字元 和 代替乙個和多個字元 代替乙個字元 2 makefi...