栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

嵌入式Linux学习笔记:Makefile语法

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

嵌入式Linux学习笔记:Makefile语法

1.  Makefile规则格式
     目标···... :   依赖文件集合······
           命令1
           命令2
           ······
     注意:命令列表中的每条命令必须以TAB键开始, 不能使用空格!
               make命令会为Makefile中的每个以TAB开始的命令创建一个Shell进程去执行。

2.  Makefile变量
      1). Makefile中的变量都是字符串,类似C语言中的宏。
      2).Makefile中可以写注释,注释开头要用符号“#”。
      3).Makefile中 变量引用方法是“$(变量名)”。
      4).Makefile变量的赋值符有三个:“=”、“:=”、“?=”。
          “=”   :   使用“=”给变量赋值时,不一定要用已经定义好的值,也可以使用后面定义的值。变量的真实值取决于它所引用变量的最后一次有效值。
          “:=”  :   使用“:=”给变量赋值时,不会使用后面定义的变量,只能使用前面已经定义好的。
          “?=” :   使用“?=”给变量赋值时,若变量前面没有被赋值,那么此时变量的值即为现在定义的值,若变量前面已经被赋值了,那么此时赋值无效,变量的值为前面赋的值。

      5).变量追加符“+=”
          有时候需要给前面已经定义好的变量添加一些字符进去,此时便要用到符号“+=”
          例: obj = main.o input.o
                  obj += calcu.o

                  obj变为: main.o input.o calcu.o

3.  Makefile模式规则
      模式规则中,至少在规则的目标定义中要包含“%”,否则就是一般规则,目标中的“%”表示对文件名的匹配,“%”表示长度任意的非空字符串,比如“%.c”就是所有以.c结尾的文件,                “a.%.c”就是所有以a.开头,以.c结尾的文件。

4.  Makefile自动化变量
      "$@" : 规则中的目标集合,在模式规则中,若有多个目标的话,“$@”表示匹配模式中定义的目标集合。
      “$<”  : 依赖文件集合中的第一个文件,若依赖文件是以模式(即%)定义的,那么"$<"就是符合模式的一系列的文件集合 。
      “$^”  : 所有依赖文件的集合,使用空格分开,若在依赖文件中有多个重复的文件,“$^”会去除重复的依赖文件,只保留一份。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/334557.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号