makefile 學習筆記

2022-03-07 23:29:06 字數 1824 閱讀 1216

1/ 編寫簡單makefile

test_out: test.o

g++ 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 變數名 值 引用變數可在之後定義 ...