嵌入式岗位Makefile常见面试题(1)

第一题:变量使用

在这里插入图片描述

解析:Makefile中变量的引用格式就是$(变量名),这是没什么好讲的,记住就行。在Makefile中有一些特殊的宏定义需要记住,$@:表示生成的目标 ;$<:表示生成依赖的文件;$?是执行上一条指令的返回值;可以参考博客:《Makefile的基本用法》

第二题:ifeq的使用

在这里插入图片描述

(1)ifeq用来判断两个值是否相等,ifneq用来判断两个值是否不相等;
(2)ifeq和ifneq是Makefile中的两个关键字,在Makefile中不用"=“和”!=";
(3)ifeq就是英文单词"if equal"的缩写,翻译过来就是如果相等;ifneq就是英文单词"if not equal"的缩写,翻译过来就是如果不相等;
(4)更多细节参考博客:《Makefile中的条件编译:ifeq、ifneq、ifdef和ifndef》

第三题:ifneq的使用

在这里插入图片描述

ifneq的解析参考第二题,这里强调一点就是ifeq和ifneq可以互相嵌套使用,组成多层次的判断逻辑;

第四题:Makefile中增加help信息

在这里插入图片描述

(1)在实际工作中我们编写Makefile时,一般会添加help目标,方便其他人使用Makefile时可以通过"make help"命令来查看此Makefile的使用方法;
(2)"make -h"和"make --help"是查看make指令的帮助信息,而不是Makefile的help信息;
(3)在Makefile中就不使用define关键字,错的很离谱;
(4)定义的help目标是可以使用函数的,和其他的目标没有任何区别;

第五题:subst函数

在这里插入图片描述

(1)subst函数是Makefile自带的函数,功能是替换字符串,Makefile自带了一些函数,这些函数不用去记,能分辨出是函数并知道怎么查询即可;
(2)函数原型:$(subst <from>,<to>,<text>)
(3)功能:把字串<text>中的<from>字符串替换成<to>
(4)返回:函数返回被替换过后的字符串。
补充:参考博客:《Makefile的函数调用详解》

第六题:make命令的选项

在这里插入图片描述

选项功能
-k发生错误后继续执行
-n只是显示Makefile的执行过程,但不会真正去执行命令,用于调试Makefile
-f指定make命令读取的文件。要记住make是一个命令,我们平时执行make命令时并没有指定文件是因为make命令会默认去当前目录下读取名字叫Makefile的文件。当我们用-f时,可以指定本次读取的文件,这时文件的名字没有必要一定是Makefile,可以叫任意名字。比如:make -f aaa,其中aaa就是我们通常意义的Makefile文件
-c跳转到指定目录执行make命令,一般用来在主Makefile中调用子Makefile

第七题:Makefile自带函数

在这里插入图片描述

(1)上面的都是Makefile自带的函数,个人觉得能分辨出这是函数,会网上查询就行,没必要去记,反正记了也会忘,重点在于理解Makefile中函数的形式。
(2)参考博客:《Makefile的函数调用详解》

第八题:Makefile的特殊宏定义

在这里插入图片描述

(1) $@表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@“就是匹配于目标中模式定义的集合。
(2)$%仅当目标是函数库文件中,表示规则中的目标成员名。
(3)$^所有的依赖目标的集合。
(4)$*这个变量表示目标模式中”%"及其之前的部分。

第九题:

在这里插入图片描述

第10行和第13行是命令,需要tab键开头,这是固定格式

第十题:

在这里插入图片描述

(1)&&表示前一条命令执行成功时,才执行后一条命令,可以参考博客:《Linux中的&、&&、|、||、 ? 、 ?、 ?#》
(2)选项A:先进入到指定目录,再执行make命令,也就是调用指定目录下的Makefile;
(3)选项B:include是Makefile的关键字,可以在Makefile文件中用include关键字来引用其他路径下的Makefile文件,类似C语言引用头文件;
(4)选项C:-C是make命令的选项,先跳转到指定目录在执行make命令;
(5)选项D:-f是make命令的选项,指定Makefile文件;

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在起飞的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值