Makefile

常用命令

简单的编译链接命令
gcc -c -o test x.c y.c//但会将x.c y.c都编译一次,类似keil
gcc -c -o x.o x.c//

Makefile规则

Makefile资料:百度:gnu make 于凤昌
官方文档:http://www.gnu.org/software/make/manual/
目标:依赖1 依赖2
【TAB】命令
注释:当“目标”文件不存在,或某个依赖文件比目标文件新,则执行“命令”

Makefile语法

通配符:%.o
$@ 表示目标文件
$< 第一个依赖文件
$^ 表示所有的依赖文件
假想目标:.PHONY
eg:

test : A.o B.o C.o
	gcc -o test $^
%.o : %.c
	gcc -c -o $@ $<
clean:
	rm *.o test
.PHONY:clean#假想文件clean,防止文件中有clean文件名的文件存在

(简单变量)即时变量
A := xxx #A的值即刻确定,在定义时即确定
B = xxx #B的值使用到时才确定

:= #即时变量
= #延时变量
?= #延时变量,如果是第一次第一才有效,如果在前面改变量已定义则忽略这句
+= #附加,它是即时变量还是延时变量取决于前面的定义
eg:

A := $(C)
B = $(C)
C = abc

D = 100ask
D ?= canmeng
all:
	@echo A = $(A)#“@”是为了不显示echo命令字符
	@echo B = $(B)
	@echo D = $(D)
C += 123

Makefile_第1张图片
第二次命令的时候是由于make命令定义了D的值
使用Makefile:
make 【目标】
若无目标,默认第一个目标

你可能感兴趣的:(Linux)