1/ 編寫簡單makefile
test_out: test.og++ test.o -o test_out
test.o: test.cpp test.h
g++ -c test.cpp test.h
.phony:clean #可有可無: 說明clean是個偽目標檔案
clean:
rm test_out test.o test.h.gch
test.o 為經過編譯生成的目標檔案,他的依賴關係是 test.cpp test.h ,同樣編譯的命令也必須以tab開頭
clean 為clean命令,通過make clean 可以刪除make過程當中生成的中間檔案。
test.h.gch : 為預編譯檔案,在編譯過程中生成的,以提高編譯效率。
# : 和shell中相似,用#作為注釋符號
注: 冒號後面都是它的依賴檔案
2/ makefile 自動推導編譯命令,以及後面所跟的.c檔案
#自動推倒之前的makefile
objects =main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
edit : $(objects)
cc -o edit $(objects)
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
display.o : display.c defs.h buffer.h
cc -c display.c
insert.o : insert.c defs.h buffer.h
cc -c insert.c
search.o : search.c defs.h buffer.h
cc -c search.c
files.o : files.c defs.h buffer.h command.h
cc -c files.c
utils.o : utils.c defs.h
cc -c utils.c
.phony : clean
clean :
rm edit $(objects)
#縮減之後的makefile ,省略.c檔案 編譯命令
objects =main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
edit : $(objects)
cc -o edit $(objects)
main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h
.phony : clean
clean :
rm edit $(objects)
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 變數名 值 引用變數可在之後定義 ...