您的位置:首页 > 其它

Mafile补充学习1~2

2016-04-17 20:45 162 查看
《朱老师物联网大讲堂》学习笔记

学习地址:www.zhulaoshi.org

# 这里是注释,和shell一样,

@表示静默执行,即make的时候不回显命令的执行,

变量赋值,

=

最简单的赋值,

:=

一般也是赋值,与=的区别是什么呢?

A=abc

B=$(A)def

#B:=$(A)def,区别就体现在这里,上句是hhdef,这句是abcdef,

A=hh

即所赋的值是:=取的是前面最靠近的,=取的是最后面的值,

因此:=反而好用些,在大的文件中,=你得往后看多远啊。。。。是吧

?=

该变量前面未赋值,则执行该赋值,也可以理解为在这个变量没有被定义过,

+=

和C语言一样,一个小细节是,添加后和原来的内容之间有一个空格,

export

经过export导出就变成环境变量了,环境变量一般用大写,普通变量用小写,

环境变量整个工程所有makefile之间都可以共享的,因此要注意会不会挖坑,

Makefile中可能有一些是内部定义的环境变量,

比如 make CC=arm-linux-gcc,传了一个环境变量CC,值是arm-linux-gcc,

如果不能覆盖内部已经有的,我们传参做什么。

通配符

*

注意和%的区别,%是用于规则的,



[ ]

将中括号中的字符依次去匹配,

自动变量,

$@ 规则的目标文件名

$< 规则的依赖文件名

$^ 依赖的文件集合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  嵌入式 uboot makefile