日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/3/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式岗位Makefile常见面试题(1) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一題:變量使用

解析:Makefile中變量的引用格式就是$(變量名),這是沒(méi)什么好講的,記住就行。在Makefile中有一些特殊的宏定義需要記住,$@:表示生成的目標(biāo) ;$<:表示生成依賴(lài)的文件;$?是執(zhí)行上一條指令的返回值;可以參考博客:《Makefile的基本用法》;

第二題:ifeq的使用

(1)ifeq用來(lái)判斷兩個(gè)值是否相等,ifneq用來(lái)判斷兩個(gè)值是否不相等;
(2)ifeq和ifneq是Makefile中的兩個(gè)關(guān)鍵字,在Makefile中不用"=“和”!=";
(3)ifeq就是英文單詞"if equal"的縮寫(xiě),翻譯過(guò)來(lái)就是如果相等;ifneq就是英文單詞"if not equal"的縮寫(xiě),翻譯過(guò)來(lái)就是如果不相等;
(4)更多細(xì)節(jié)參考博客:《Makefile中的條件編譯:ifeq、ifneq、ifdef和ifndef》;

第三題:ifneq的使用

ifneq的解析參考第二題,這里強(qiáng)調(diào)一點(diǎn)就是ifeq和ifneq可以互相嵌套使用,組成多層次的判斷邏輯;

第四題:Makefile中增加help信息

(1)在實(shí)際工作中我們編寫(xiě)Makefile時(shí),一般會(huì)添加help目標(biāo),方便其他人使用Makefile時(shí)可以通過(guò)"make help"命令來(lái)查看此Makefile的使用方法;
(2)"make -h"和"make --help"是查看make指令的幫助信息,而不是Makefile的help信息;
(3)在Makefile中就不使用define關(guān)鍵字,錯(cuò)的很離譜;
(4)定義的help目標(biāo)是可以使用函數(shù)的,和其他的目標(biāo)沒(méi)有任何區(qū)別;

第五題:subst函數(shù)

(1)subst函數(shù)是Makefile自帶的函數(shù),功能是替換字符串,Makefile自帶了一些函數(shù),這些函數(shù)不用去記,能分辨出是函數(shù)并知道怎么查詢(xún)即可;
(2)函數(shù)原型:$(subst <from>,<to>,<text>)
(3)功能:把字串<text>中的<from>字符串替換成<to>
(4)返回:函數(shù)返回被替換過(guò)后的字符串。
補(bǔ)充:參考博客:《Makefile的函數(shù)調(diào)用詳解》;

第六題:make命令的選項(xiàng)

選項(xiàng)功能
-k發(fā)生錯(cuò)誤后繼續(xù)執(zhí)行
-n只是顯示Makefile的執(zhí)行過(guò)程,但不會(huì)真正去執(zhí)行命令,用于調(diào)試Makefile
-f指定make命令讀取的文件。要記住make是一個(gè)命令,我們平時(shí)執(zhí)行make命令時(shí)并沒(méi)有指定文件是因?yàn)閙ake命令會(huì)默認(rèn)去當(dāng)前目錄下讀取名字叫Makefile的文件。當(dāng)我們用-f時(shí),可以指定本次讀取的文件,這時(shí)文件的名字沒(méi)有必要一定是Makefile,可以叫任意名字。比如:make -f aaa,其中aaa就是我們通常意義的Makefile文件
-c跳轉(zhuǎn)到指定目錄執(zhí)行make命令,一般用來(lái)在主Makefile中調(diào)用子Makefile

第七題:Makefile自帶函數(shù)

(1)上面的都是Makefile自帶的函數(shù),個(gè)人覺(jué)得能分辨出這是函數(shù),會(huì)網(wǎng)上查詢(xún)就行,沒(méi)必要去記,反正記了也會(huì)忘,重點(diǎn)在于理解Makefile中函數(shù)的形式。
(2)參考博客:《Makefile的函數(shù)調(diào)用詳解》;

第八題:Makefile的特殊宏定義

(1) $@表示規(guī)則中的目標(biāo)文件集。在模式規(guī)則中,如果有多個(gè)目標(biāo),那么,"$@“就是匹配于目標(biāo)中模式定義的集合。
(2)$%僅當(dāng)目標(biāo)是函數(shù)庫(kù)文件中,表示規(guī)則中的目標(biāo)成員名。
(3)$^所有的依賴(lài)目標(biāo)的集合。
(4)$*這個(gè)變量表示目標(biāo)模式中”%"及其之前的部分。

第九題:

第10行和第13行是命令,需要tab鍵開(kāi)頭,這是固定格式

第十題:

(1)&&表示前一條命令執(zhí)行成功時(shí),才執(zhí)行后一條命令,可以參考博客:《Linux中的&、&&、|、||、 ? 、 ?、 ?#》;
(2)選項(xiàng)A:先進(jìn)入到指定目錄,再執(zhí)行make命令,也就是調(diào)用指定目錄下的Makefile;
(3)選項(xiàng)B:include是Makefile的關(guān)鍵字,可以在Makefile文件中用include關(guān)鍵字來(lái)引用其他路徑下的Makefile文件,類(lèi)似C語(yǔ)言引用頭文件;
(4)選項(xiàng)C:-C是make命令的選項(xiàng),先跳轉(zhuǎn)到指定目錄在執(zhí)行make命令;
(5)選項(xiàng)D:-f是make命令的選項(xiàng),指定Makefile文件;

推薦

(1)給大家推薦一個(gè)對(duì)嵌入式工程師十分適用的網(wǎng)站,上面不僅有嵌入式崗位要求的各個(gè)知識(shí)點(diǎn)的面試題、還有編程題,還有各個(gè)公司的面試真題,是學(xué)習(xí)嵌入式知識(shí)不錯(cuò)的網(wǎng)站,推薦大家去刷題和游覽貼吧,不斷充實(shí)自己,升職漲薪不是夢(mèng)。
鏈接:學(xué)習(xí)網(wǎng)站跳轉(zhuǎn)
(2)我也會(huì)每周更新嵌入式各個(gè)知識(shí)點(diǎn)的面試題解析,喜歡的博友可以關(guān)注我,你的點(diǎn)贊和收藏是對(duì)我最大的肯定。
上面的Makefile面試題來(lái)自與牛客網(wǎng)的專(zhuān)項(xiàng)練習(xí):題庫(kù)->專(zhuān)項(xiàng)練習(xí)->通信/硬件->編程語(yǔ)言->Makefile;

總結(jié)

以上是生活随笔為你收集整理的嵌入式岗位Makefile常见面试题(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。