中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中make的示例分析

發布時間:2021-10-28 17:09:09 來源:億速云 閱讀:132 作者:小新 欄目:系統運維

小編給大家分享一下linux中make的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

規則

規則rule是指示 make 應該如何并且何時構建一個被稱作為目標target的文件的指令。目標可以依賴于其它被稱作為前提prerequisite的文件。

你會指示 make 如何按步驟recipe構建目標,那就是一套按照出現順序一次執行一個的 shell 命令。語法像這樣:

target_name : prerequisites    recipe

一但你定義好了規則,你就可以通過從命令行執行以下命令構建目標:

$ make target_name

目標一經構建,除非前提改變,否則 make 會足夠聰明地不再去運行該步驟。

關于前提的更多信息

前提表明了兩件事情:

  • 當目標應當被構建時:如果其中一個前提比目標更新,make 假定目的應當被構建。

  • 執行的順序:鑒于前提可以反過來在 makefile 中由另一套規則所構建,它們同樣暗示了一個執行規則的順序。

如果你想要定義一個順序但是你不想在前提改變的時候重新構建目標,你可以使用一種特別的叫做“唯順序order only”的前提。這種前提可以被放在普通的前提之后,用管道符(|)進行分隔。

樣式

為了便利,make 接受目標和前提的樣式。通過包含 % 符號可以定義一種樣式。這個符號是一個可以匹配任何長度的文字符號或者空隔的通配符。以下有一些示例:

  • %:匹配任何文件

  • %.md:匹配所有 .md 結尾的文件

  • prefix%.go:匹配所有以 prefix 開頭以 .go 結尾的文件

特殊目標

有一系列目標名字,它們對于 make 來說有特殊的意義,被稱作特殊目標special target

你可以在這個文檔發現全套特殊目標。作為一種經驗法則,特殊目標以點開始后面跟著大寫字母。

以下是幾個有用的特殊目標:

  • .PHONY:向 make 表明此目標的前提可以被當成偽目標。這意味著 make 將總是運行,無論有那個名字的文件是否存在或者上次被修改的時間是什么。

  • .DEFAULT:被用于任何沒有指定規則的目標。

  • .IGNORE:如果你指定 .IGNORE 為前提,make 將忽略執行步驟中的錯誤。

替代

當你需要以你指定的改動方式改變一個變量的值,替代substitution就十分有用了。

替代的格式是 $(var:a=b),它的意思是獲取變量 var 的值,用值里面的 b 替代詞末尾的每個 a 以代替最終的字符串。例如:

foo := a.obar : = $(foo:.o=.c) # sets bar to a.c

注意:特別感謝 Luis Lavena 讓我們知道替代的存在。

檔案文件

檔案文件是用來一起將多個數據文檔(類似于壓縮文件的概念)收集成一個文件。它們由 ar Unix 工具所構建。ar 可以用于為任何目的創建檔案,但除了靜態庫,它已經被 tar 大量替代。

make 中,你可以使用一個檔案文件中的單獨一個成員作為目標或者前提,就像這樣:

archive(member) : prerequisite     recipe

以上是“linux中make的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙里县| 韩城市| 镇康县| 绥滨县| 山东省| 如皋市| 伊金霍洛旗| 温州市| 深州市| 合川市| 阜南县| 曲麻莱县| 商洛市| 左云县| 屏南县| 志丹县| 醴陵市| 云龙县| 长治县| 闽清县| 涟源市| 乡城县| 西乌珠穆沁旗| 成都市| 乌鲁木齐县| 托克托县| 长乐市| 故城县| 额敏县| 榕江县| 柞水县| 应城市| 介休市| 康乐县| 荣昌县| 瑞昌市| 读书| 新源县| 灌阳县| 漠河县| 凤山市|