Makefile工具

2019-07-12 19:05发布

Makefile是工程管理的一个工具,是嵌入式linux工程师必备的技能,Makefile使在linux整个程序的编译链接只需一个make命令就可以。那么Makefile文件是一个什么样的文件?下面对其文件内容做一个说明,Makefile文件描述了整个程序的编译链接规则,其内容主要有变量和规则两部分组成,规则是其最重要的部分。例如下面一条规则      xxx.elf:xxx.o               arm-linux-ld   -Txxx.lds  -o xxx.elf    xxx.o     xxx.elf 称作目标   xxx.o 称作依赖,依赖可以有多个。 在Makfile中只有命令而没有依赖的目标称作伪目标(phony target) 例如
.PHONY : clean         clean : rm -f   xxx.o    xxx.o    xxx
      " .PHONY : " 用于将clean声明为伪目标。
     文件含有多条规则时,可以用make +目标的方法单独执行该条规则,若没有指定规则,则会默认执行第一条规则,第一条规则中的目标称为最终目标。
在Makefile中系统自带了一些变量 例如 :          $^   代表所有的依赖文件         $@  代表目标          $<   代表第一条依赖
除了系统自带的变量外,用户可以自定义变量,例如 使用变量前         xxx.elf: aaa.o   bbb.o          arm-linux-ld   -Txxx.lds  -o xxx.elf    aaa.o   bbb.o        使用变量后 obj=aaa.o bbb.o   xxx.elf: $(obj)          arm-linux-ld   -Txxx.lds  -o xxx.elf    $(obj)
合理使用变量可以增强Makefile文件的可读性
最后加一点Makefile文件的使用技巧 # 注释符 @加在规则前可以去回显 make命令默认调用的文件为 Makefile 或makefile 当然我们也可以使用其他的文件名 使用方法 make -f FileName