内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

第二部分Makefile總述-創(chuàng)新互聯(lián)

目錄
  • 一、Makefile 里有什么?
    • 1、顯式規(guī)則
    • 2、隱晦規(guī)則
    • 3、變量定義
    • 4、文件指示
    • 5、注釋
  • 二、Makefile 的文件名
  • 三、引用其他的 Makefile
  • 四、環(huán)境變量 MAKEFILES
  • 五、make 的工作方式

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),阜城企業(yè)網(wǎng)站建設(shè),阜城品牌網(wǎng)站建設(shè),網(wǎng)站定制,阜城網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,阜城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。一、Makefile 里有什么?

??Makefile 里主要包含了五個東西:① 顯式規(guī)則、② 隱晦規(guī)則、③ 變量定義、④ 文件指示、⑤ 注釋。

1、顯式規(guī)則

??顯式規(guī)則說明了如何生成一個或多個目標(biāo)文件。由 Makefile 的書寫者顯式地指出:要生成的文件、文件的依賴文件、生成的命令。

2、隱晦規(guī)則

??由于我們的 make 有自動推導(dǎo)的功能,所以隱晦規(guī)則可以讓我們比較粗糙地、簡略地書寫 Makefile,這是由 make 所支持的。

3、變量定義

??在 Makefile 中我們要定義一系列的變量,變量一般都是字符串,這個有點(diǎn)像 c 語言中的宏,當(dāng) Makefile 被執(zhí)行時,其中的變量都會被擴(kuò)展到相應(yīng)的引用位置上。

4、文件指示

??其中包括了三個部分:① 在一個 Makefile 中引用另一個 Makefile,就像 c 語言中的 include 一樣;② 根據(jù)某些情況指定 Makefile 中的有效部分,就像 c 語言中的預(yù)編譯#if一樣;③ 定義一個多行的命令。有關(guān)文件指示的內(nèi)容,我會在后續(xù)的部分中講述。

5、注釋

??Makefile 中只有行注釋,和 Unix 的 shell 腳本一樣,其注釋是用 “#” 字符,這個就像 c/c++ 中的 “//” 一樣。如果你要在你的 Makefile 中使用 “#” 字符,可以用反斜杠進(jìn)行轉(zhuǎn)義,如\#。最后,值得一提的是,在 Makefile 中的命令,必須要以以 [Tab] 鍵開始。

二、Makefile 的文件名

??默認(rèn)情況下,make 命令會在當(dāng)前目錄下按順序?qū)ふ椅募麨?“GNUmakefile”、“makefile”、“Makefile” 的文件,找到了就解釋這個文件。在這三個文件名中,最好使用 “Makefile” 這個文件名,因?yàn)檫@個文件名第一個字符為大寫,這樣有一種醒目的感覺。最好不要用 “GNUmakefile”,這個文件名是 GNU 的 make 識別的。有另外一些 make 只對全小寫的 “makefile” 文件名敏感,但基本上來說,大多數(shù)的 make 都支持 “makefile” 和 “Makefile” 這兩種默認(rèn)文件名。
??當(dāng)然,你可以使用別的文件名來書寫 Makefile,比如 “Make.Linux”、“Make.Solaris”、“Make.AIX” 等,如果要指定特定的 Makefile,你可以使用 make 的 “-f” 或 “–file” 參數(shù),如make -f Make.Linuxmake --file Make.AIX。

三、引用其他的 Makefile

??在 Makefile 中使用 include 關(guān)鍵字可以把別的 Makefile 包含進(jìn)來,這很像 c 語言的 #include,被包含的文件會原模原樣地放在當(dāng)前文件的包含位置。include 的語法是:

include

fileName 可以是當(dāng)前操作系統(tǒng) shell 的文件模式(可以包含路徑和通配符)。在 include 前面可以有一些空字符,但是絕對不能是 [Tab] 鍵開始。include 和可以用一個或多個空格隔開。舉個例子,你有這樣幾個 Makefile : a.mk、b.mk、c.mk、 foo.make,以及一個變量 $(bar),其包含了 e.mk 和 f.mk,那么下面的語句:

include  foo.make  *.mk  $(bar)

等價于:

include  foo.make  a.mk  b.mk  c.mk  e.mk  f.mk

??make 命令開始時,會找尋 include 所指出的其它 Makefile,并把其內(nèi)容安置在當(dāng)前位置。就好像 c/c++ 的 #include 指令一樣。如果文件都沒有指定絕對路徑或是相對路徑的話,make 會首先在當(dāng)前目錄下尋找,如果當(dāng)前目錄下沒有找到,那么 make 還會在下面幾個目錄下找:

  • 1、如果 make 執(zhí)行時,有-I--include-dir參數(shù),那么 make 就會在這個參數(shù)所指定的目錄下去尋找。
  • 2、如果目錄/include (一般是 /usr/local/bin 或 /usr/include)存在的話,make 也會去找。如果有文件沒有找到的話,make 會生成一條警告信息,但不會馬上出現(xiàn)致命錯誤。它會繼續(xù)載入其它文件,一旦完成 Makefile 的讀取,make 會再重試這些沒有找到或是不能讀取的文件,如果還是不行,make 才會出現(xiàn)一條致命信息。如果你想讓 make 不理那些無法讀取的文件,而繼續(xù)執(zhí)行,你可以在 include 前加一個減號-。如-include,其表示,無論 include 過程中出現(xiàn)什么錯誤,都不要報錯,繼續(xù)執(zhí)行。和其它版本 make 兼容的相關(guān)命令是 sinclude,起作用和這一個 include 是一樣的。
四、環(huán)境變量 MAKEFILES

??如果你的當(dāng)前環(huán)境中定義了環(huán)境變量 MAKEFILES,那么 make 會把這個變量中的值做一個類似于 include 的動作。這個變量中的值是其它的 Makefile,用空格分隔。只是,它和 include 不同的是,從這個環(huán)境變量中引入的 Makefile 的 “目標(biāo)”不會起作用,如果環(huán)境變量中定義的文件發(fā)現(xiàn)錯誤,make 也會不理。
??但是在這里我還是建議不要使用這個環(huán)境變量,因?yàn)橹灰@個變量一被定義,那么當(dāng)你使用 make 時,所有的 Makefile都會受到它的影響,這絕不是你想看到的。在這里提這個事,只是為了告訴大家,也許有時候你的 Makefile 出現(xiàn)了怪事,那么你可以看看當(dāng)前環(huán)境中有沒有定義這個變量。

五、make 的工作方式

??GNU 的 make 工作時的執(zhí)行步驟如下(想來其它的 make 也是類似):

  • 1、讀入所有的 Makefile。
  • 2、讀入被 include 的其它 Makefile。
  • 3、初始化文件中的變量。
  • 4、推導(dǎo)隱晦規(guī)則,并分析所有規(guī)則。
  • 5、為所有的目標(biāo)文件創(chuàng)建依賴關(guān)系鏈。
  • 6、根據(jù)依賴關(guān)系,決定哪些目標(biāo)要重新生成。
  • 7、執(zhí)行生成命令。

1 ~ 5 步為第一個階段,6、7 為第二個階段。第一階段中,如果定義的變量被使用了,那么,make 會把其展開在使用的位置。但 make 并不會完全馬上展開,make 使用的是拖延戰(zhàn)術(shù),如果變量出現(xiàn)在依賴關(guān)系的規(guī)則中,那么僅當(dāng)這條依賴被決定要使用了,變量才會在其內(nèi)部展開。

??當(dāng)然,這個工作方式你不一定要清楚,但是知道這個方式你也會對 make 更為熟悉。有了這個基礎(chǔ),后續(xù)部分也就容易看懂了。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:第二部分Makefile總述-創(chuàng)新互聯(lián)
分享路徑:http://www.rwnh.cn/article2/cepgic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、Google、ChatGPT、域名注冊建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
滦南县| 满洲里市| 应用必备| 阜康市| 陆丰市| 蓬溪县| 楚雄市| 勃利县| 巴彦淖尔市| 兰州市| 上虞市| 河东区| 房山区| 封丘县| 晋城| 赣州市| 漠河县| 惠州市| 闽侯县| 隆林| 河津市| 安国市| 南皮县| 河北区| 林州市| 阿鲁科尔沁旗| 永和县| 平原县| 阿城市| 南陵县| 临洮县| 科技| 泾阳县| 万安县| 通河县| 海兴县| 甘孜县| 酒泉市| 屏山县| 南平市| 北宁市|