(1)Makefile用途
Make的工作主要依赖于一个叫Makefile的文件。Makefile文件描述了整个程序的编译,链接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译,如何最后产生我们想要的可执行文件。
(2)Makefile中最重要的组成部分是规则
规则:用于说明如何生成目标文件,规则的格式如下:
targets : prerequesties
command
目标 依赖 命令
特别提示,命令需要使用【TAB】键空格
(3)伪目标
Makefile中把那些只包含命令,没有任何依赖的目标称为”伪目标(phony targets)“
.PHONY:clean
clean:
rm -f hello main.o func.o
“.PHONY”将”clean“目标声明为伪目标
(4)最终目标
整个Makefile规则中的第一条目标就是最终目标
(5)变量
(1)使用变量前
app1:app1.o func1.o func2.o
gcc app1.o func1.o func2.o -o app1
app2:app2.o func1.o func2.o
gcc app2.o func1.o func2.o -o app2
(2)使用变量后
obj=func1.o func2.o
app1:app1.o $(obj)
gcc app1.o $(obj) -o app1
app2:app2.o $(obj)
gcc app2.o $(obj) -o app2
(3)系统中定义好的默认变量
$^:代表所有的依赖文件
$@:代表目标
$<:代表第一个依赖文件
(4)使用前
led.o:led.S
arm-linux-gcc -g -o led.o -c led.S
(5)使用后
led.o:led.S
arm-linux-gcc -g -o $@ -c $^
(6)去回显
在命令前面加上”@“符号
(7)文件名
默认为两种文件名可选
(1)makefile
(2)Makefile
使用指定工程文件
make -f filename