簡單的makefile用法

2021-09-10 22:31:19 字數 1073 閱讀 2301

cc = gcc

#cflags = -g -ddebug -lm -wall -i object -i vm -i compiler -i parser -i include -i cli -i gc -w -wstrict-prototypes -wmissing-prototypes -wsystem-headers

cflags = -g -lm -wall -i object -i vm -i compiler -i parser -i include -i cli -i gc -w -wstrict-prototypes -wmissing-prototypes -wsystem-headers

target = spr

dirs = object include cli compiler parser vm gc

cfiles = $(foreach dir, $(dirs), $(wildcard $(dir)/*.c))

objs = $(patsubst %.c, %.o, $(cfiles))

$(target):$(objs)

$(cc) -o $(target) $(objs) $(cflags)

clean:

-$(rm) $(target) $(objs)

r: clean $(target)

makefile的基本語法是 

目標:依賴1 依賴2 依賴3 ... 依賴n

[\t]    命令

比如:main:tool.c main.c

gcc -c main

另外makefile裡面也是可以寫變數的,比如 cc = gcc

那麼cc就表示gcc

使用變數的時候需要遵守   $(變數名)  的格式

makefile是遞迴編譯的,也就是說先編譯依賴,等依賴都編譯完了最後編譯目標

還有一種沒有依賴的目標,我們稱為偽目標,它在make階段不會執行,但是可以使用make 目標名的格式來執行

基本的MAkefile用法

makefile的規則 target prerequisities command target可以是obj檔案 也可以是目標檔案 也可以是lable 標籤 prerequisities 指的生成target所需要的依賴檔案或目標 command指的是執行的make命令,任意的shell命令 g w...

makefile用法入門

tool.c和main.c聯合編譯 注意tool.c中不能以main函式開頭,只能是其他的任意函式,同時需要包含tool.c函式宣告的標頭檔案tool.h int find max int arr,int n include tool.h intfind max int arr,int n retu...

簡單的makefile例子

1.2.3 簡單的示例 本小節開始我們在第一小節中提到的例子。此例子由3個頭檔案和8個c檔案組成。我們講述寫乙個簡單的makefile,來描述如何建立最終的可執行檔案 edit 此可執行檔案依賴於8個c原始檔和3個頭檔案。makefile檔案的內容如下 sample makefile edit ma...