uboot之Makefile学习

1Makefiel的作用及意义:

Makefiel主要用于管理C语言的工程文件,如同EDA一样,这不过这里是通过Makefile这个文件来管理这个歌工程文件的。相对于传统EDA而言更见灵活也可以随时对文件进行必要的处理。这里主要用与ubootLiunx

 

2Makefile的用法:

1)Makefile的文件名一般是Makefilemakefile

2)Makefile主要由目标,依赖,命令这几部分组成的。

·目标:目标就是我们要去make xxx,这个xxx就是我们最终要生成的东西。如:对C文件的make会生成目标文件,然后再给我们去执行。

·依赖:依赖就是要生成这个文件所需的原材料。就像是.h文件对于.c文件一样重要。

·命令:命令就是加工方法。我们可以通过Makefile来选择将我们写的C程序如何生成我们想要的如.bin .o .s 文件。

3)伪目标(.PHONY):

·伪目标的意思是这个目标本身不代表一个文件,执行这个目标不是为了得到某个文件或东西,而是单纯的为了执行这个目标下面的命令。

·伪目标一般没有依赖,因为伪目标就是为了执行目标下面的命令。而没有依赖实际上就是无条件执行下面的命令。

·伪目标可以直接写,而不用加说明。但是,有时为了明确声明这个目标是伪目标,会再他的前面加上.PHONY来声明它是为目标。

4)环境变量:

·makefile中用export导出的就是环境变量。一般情况下,环境变量要大写,普通变量要小写。

·环境变量和普通变量是不同的。环境变量在整个Makefile中都具有作用(即使是引用了其他的Makefile),而普通变量只有在当前的Makefile中起作用。可以将环境变量理解为C语言中的全局变量,而普通变量理解为C语言中的局部变量。因此,定义全局变量的时候要小心了。

·Makefile中的环境变量可以是在写Makefile时在文件内定义的,也可以是我们在执行的时候传递进去的。例如:make CC=liunx-arm-gcc,在这里,CCmakefile中定义的一个环境变量,而后面的linux-arm-gcc则是我们现场传递进去的一个值,而这个现场传递进去的值可以直接覆盖内部CC原本的值。

5)自动变量:

·有时候Makefile里面的变量名字太多了,而我们为了方便起见,都统一规定了一个名字,用它来代替符合某种条件的变量的文件集。Makefile其实可以不用自动变量的,但是,为了方便起见还是用了比较好。

·自动变量其实就是预定义了特殊意义的符号而已。

 

3Makefile语法规则:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值