1.第乙個版本,易懂,
g++2.第二個版本,將編譯與鏈結分開,在有很多**時,不需要每次編譯所有的**,通過下面的結構,每次就只編譯修改的**,然後重新鏈結,
g++main.o:main.c
g++-c main.c
add.o:add.c
g++-c add.c
sub.o:sub.c
g++-c sub.c
mul.o:mul.c
g++-c mul.c
3.第三個版本
obj=main.o add.o sub.o mul.o
cc=g++
cppflass=
-i$(target)
:$(obj)
$(cc)
-o $(obj) $(target)
%.o:%.c
$(cc)
-c $<
-o $@
其中,$<:依賴(規則中第乙個依賴)
$^:規則中的所有依賴
$@:目標
%:模式匹配
4.第四個版本
src=$(wildcard .
//*.c)
obj=$(patsubst ./%
.c./
%.o,$(src)
)cc=g++
cppflass=
-i$(target)
:$(obj)
$(cc)
-o $(obj) $(target)
%.o:%.c
$(cc)
-c $<
-o $@
.phony:clean
clean:
-mkdir /
use(加-當行**執行失敗後,繼續執行後面的**)
rm $(obj) $(target)
-f
.phony:clean 宣告偽目標,當目錄下有clean檔案時,就需要宣告偽目標
patsubst:匹配替換函式
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 變數名 值 引用變數可在之後定義 ...