makefile編寫規則

2021-10-08 19:37:22 字數 908 閱讀 2153

目標: 要生成的目標檔案

依賴: 目標檔案由哪些檔案生成

命令: 通過執行該命令由依賴檔案生成目標

# $@  代表目標

# $^ 代表全部依賴

# $< 第一依賴

# $? 第一變化的依賴

#2020-8-3

# wildcard可以進行檔案匹配

# patsubst 內容的替換

#makefile的變數

# $@ 代表目標

# $^ 代表全部依賴

# $< 第一依賴

# $? 第一變化的依賴

#get all .c files

srcfiles=

$(wildcard *.c)

#all .c files --> .o files

objfiles=

$(patsubst %.c,%.o,$(srcfiles)

)#目標檔案用法$(var)

# gcc前面要用tab鍵,可以用vim敲入

gcc -o $@ -i ./include $(objfiles)

#模式匹配規則,$@,$< 這樣的變數,只能在規則**現

%.o:%.c

gcc -c $< -i./include -o $@

test:

@echo $(srcfiles)

@echo $(objfiles)

#定義偽目標,防止有歧義

.phony:clean all

# "-@rm -f *.o" 減號的作用是當指令報錯的時候依然執行,@的作用是不輸出指令。

clean:

-@rm -f *.o

參考

linux下開發之makefile檔案

Makefile檔案編寫規則

makefile 中包含五種內容 顯式規則,隱式規則,變數定義,指令 directive 和注釋。1.顯式規則 描述如何生成規則的目標,它列出了目標依賴的檔案,指定了產生或更新目標的命令。2.隱式規則 描述如何生成基於檔名的一類檔案,說明目標可能依賴於和其檔名類似的檔案,指定了相應的命令。3.指令 ...

makefile編寫(一)基本規則

一 乙個簡單的例子 建立乙個malefile檔案如下 mian.o main.c a.h gcc c main.c 1.o 1.c a.h b.h gcc c 1.c 2.o 2.c b.h c.h gcc c 2.c 2 3 cc gcc 4 5 debug 6 cflags i.g wall a...

makefile的編寫規則和示例

例一 在乙個demo目錄下有三個目錄 分別是test,include,lib test目錄下有三個目錄,分別是include和source和project,在目錄include下有三個檔案,分別是a.h,b.h,c.h,在source目錄下有三個檔案,分別是a.c,b.c,c.c,project目錄...