库文件
在windows下 是.lib
在linux下是.a
目标:依赖文件
需要执行的命令(任意的shell命令)必须以Tab键作为开头
如果冒号后面没有指定依赖文件,就不会自动执行,例如clean
makefile会自动推到 [.o] = [.c],所以可以省略
例如 main.o : main.c def.h
gcc -c main.c
可以直接写成 main.o : def.h
gcc -c main.c
gcc -c main.c 也可以忽略,可以自动推倒
例如 main.o : main.c def.h
可以直接写成 main.o : def.h
关键字 .PHONY
.PHONY : clean
.PHONY 意思表示clean是一个伪目标
-rm edit 前面加一个减号的意思就是 某些文件出现问题,依然可以继续坐后面的事
注释用 “#”
Make -f file 指定make的对应文件
Make -I 指定include的文件
“
<
”
表
示
所
有
的
依
赖
目
标
集
(
也
就
是
“
f
o
o
.
c
b
a
r
.
c
”
)
,
“
<”表示所有的依赖目标集(也就是“foo.c bar.c”), “
<”表示所有的依赖目标集(也就是“foo.cbar.c”),“@”表示目
标集(也就是“foo.o bar.o”)
命令执行: 执行两条命令时,如果想第二条命令在第一条命令的基础上执行,就需要用分号“;”,并且写到同一行
例如:
exec:
cd /home/hchen; pwd
makefile中一些特殊符号的使用,查百度知晓
$(var:a=b) 表示var中a字符用b替换