考慮如下makefile:
cc=g++
cflags=-c –wall
objects=main.o hello.o factorial.o
all: prog
prog: $(objects)
$(cc) $(objects) -o prog
%.o: %.cpp
$(cc) $(cflags) $<
clean:
rm -rf *.o
考慮makefile中的以下入口:
hello.o: hello.c hello.h
echo $@
echo $<
echo $^
我們將每個入口的冒號左側稱為入口的目標檔案, 右側稱為入口的依賴檔案, 因此這個入口的目標檔案為hello.o, 依賴檔案為hello.c和hello.h. @, 《和^均為makefile中特有的巨集, 其中@代表這個入口的目標檔案, 《代表這個入口的第乙個依賴檔案, ^代表這個入口的所有的依賴檔案. 以上入口的執行結果如下:
$ make hello.o
echo hello.o
hello.o
echo hello.c
hello.c
echo hello.c hello.h
hello.c hello.h
更進一步, 以下兩個入口是等價的:
test: test.c
gcc test.c -o test
test: test.c
gcc test.c -o $@
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規則 目標檔案 依賴檔案 tab 命令 命令前必須有乙個tab exp test main.c gcc main.c o test 隱式規則 o c 同名匹配 變數 類似於c中的巨集,引用方式 arg 變數名 值 引用變數可在之後定義 ...