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...