嵌入式岗位Makefile常见面试题

Posted 正在起飞的蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式岗位Makefile常见面试题相关的知识,希望对你有一定的参考价值。

第一题:变量使用

解析: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文件;

推荐

(1)给大家推荐一个对嵌入式工程师十分适用的网站,上面不仅有嵌入式岗位要求的各个知识点的面试题、还有编程题,还有各个公司的面试真题,是学习嵌入式知识不错的网站,推荐大家去刷题和游览贴吧,不断充实自己,升职涨薪不是梦。
链接:学习网站跳转
(2)我也会每周更新嵌入式各个知识点的面试题解析,喜欢的博友可以关注我,你的点赞和收藏是对我最大的肯定。
上面的Makefile面试题来自与牛客网的专项练习:题库->专项练习->通信/硬件->编程语言->Makefile;

以上是关于嵌入式岗位Makefile常见面试题的主要内容,如果未能解决你的问题,请参考以下文章

性能测试:性能测试岗位常见面试题

web 自动化岗位常见面试题

面经软件测试岗位常见面试题全套合集系列4-1

嵌入式常见面试题总结100题(上)

嵌入式常见面试题总结100题(下)

面试准备——selenium常见面试题及答案(java)