第一题:变量使用

解析: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常见面试题(1)相关推荐

  1. 嵌入式C语言——常见面试题

    1.描述一下gcc编译过程? gcc编译过程分为4步骤:预处理.编译.汇编.链接. 预处理:头文件包含.宏替换.条件编译.删除注释. 编译:主要进行词法.语法.语义分析等等,检查无误后把预处理好的文件 ...

  2. Spring常见面试题及答案汇总1000道(春招+秋招+社招)

    Spring面试题以及答案整理[最新版]Spring高级面试题大全(2021版),发现网上很多Spring面试题都没有答案,所以花了很长时间搜集,本套Spring面试题大全,汇总了大量经典的Sprin ...

  3. vue.js 常见面试题_使用Vue.js时应避免的常见错误

    vue.js 常见面试题 Looking for a front-end framework to try out, I started with React and then tried Vue.j ...

  4. BTA 常问的 Java基础40道常见面试题及详细答案,java初级面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  5. C++常见面试题,来看看你会几个~~

    C++常见面试题汇总: 写在开篇:汇总了一些公司的常见C++面试题~~收藏起来呀!! 正文开始@Assassin 目录: C++常见面试题汇总: 1. 变量的声明和定义有什么区别: 2. 简述#ifd ...

  6. C/C++程序员应聘常见面试题深入剖析

    为什么80%的码农都做不了架构师?>>>    C/C++程序员应聘常见面试题深入剖析 1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内 ...

  7. BTA 常问的 Java基础40道常见面试题及详细答案

    最近看到网上流传着,各种面试经验及面试题,往往都是一大堆技术题目贴上去,而没有答案. 为此我业余时间整理了,Java基础常见的40道常见面试题,及详细答案,望各路大牛,发现不对的地方,不吝赐教,留言即 ...

  8. Cocos2d-x常见面试题

    Cocos2d-x常见面试题 1.Cocos2d-x是怎样实现跨平台? AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同平台的不同实现.比如我们通常认为一个程序是由 m ...

  9. 测试开发工程师常见面试题

    1. CPU 和 GPU的区别 CPU 力气大啥P事都能干,还要协调. GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟 ...

最新文章

  1. 批量下载文献中的参考文献
  2. 揭秘:美国国防部用什么样的操作系统
  3. 【Android 应用开发】 Fragment 详解
  4. 【Python】pymysql基础:数据库操作
  5. SimpleDateFormat-时间格式化中的大小写字符
  6. 如何用组策略来找到丢失的文件
  7. hbase 页面访问_HBase
  8. python自动卸载win程序_利用python实现自动扫雷程序
  9. 语言自制教具_学习笔记:蒙特梭利教师必备硬核技能“蒙氏理论+教具制作”...
  10. 二分最大匹配(匈牙利算法+HK算法)
  11. 您是哪一种类型的老板?
  12. 中介效应、调节效应与交互作用咋回事?
  13. python基础知识学习
  14. 美国出台最严技术出口管制!14项前沿科技面临封锁
  15. win10计算机设备感叹号,win10网络适配器出现感叹号的解决方法
  16. 一 . css系列之html需知及ps的基础操作
  17. 总结获得【酷我音乐】歌曲URL地址
  18. Objectdock stacks docklet 无法启动程序快捷方式
  19. miss工作室官宣加盟新公司是真的吗
  20. Python编程学习教程:用python给自己DIY一款小说阅读器

热门文章

  1. jstack 工具 查看JVM堆栈信息
  2. 一个屌丝程序猿的人生(九十六)
  3. 【GPT-4】立即停止训练比 GPT-4 更强的模型,至少六个月!马斯克、图灵奖得主等数千 AI 专家紧急呼吁
  4. 考研加油站系统的设计与实现
  5. 鸟哥的Linux笔记-------磁盘与文件系统
  6. 现货白银入门技巧之白银K线卖出信号
  7. linux 命令行管理员身份运行,任意位置以管理员身份打开CMD(命令提示符)
  8. 1分钟理清楚C++类模板和模板类区别
  9. postgresql中sql查询语句报错处理——ERROR: failed to find conversion function from unknown to text
  10. 吉林大学数据库系统原理期末复习笔记