常用命令
简单的编译链接命令
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
第二次命令的时候是由于make命令定义了D的值
使用Makefile:
make 【目标】
若无目标,默认第一个目标