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

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

生活随笔

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

编程问答

《跟我一起写Makefile》读书笔记(2)

發(fā)布時(shí)間:2023/12/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《跟我一起写Makefile》读书笔记(2) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

四、Makefile綜述

1、makefile里有什么?

Makefile 里主要包含五個(gè)東西:顯式規(guī)則、隱晦規(guī)則、變量定義、文件指示和注釋。

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

(2)文件指示,包括三個(gè)部分

  • 一個(gè)是在一個(gè) Makefile 中引用另一個(gè) Makefile,就像 C 語(yǔ)言中的include 一樣;
  • 另一個(gè)是指根據(jù)某些情況指定 Makefile 中的有效部分,就像 C 語(yǔ)言中的預(yù)編譯#if 一樣;
  • 還有就是定義一個(gè)多行的命令。?
(3)注釋

  • Makefile 中只有行注釋,和 UNIX 的 Shell 腳本一樣,其注釋是用“#”字符。
  • 如果要使用“#”字符,可以用反斜框進(jìn)行轉(zhuǎn)義,如:“\#”。

2、makefile的文件名

(1)默認(rèn)的情況下,make 命令會(huì)在當(dāng)前目錄下按順序找尋文件名為“GNUmakefile”、“makefile”、“Makefile”的文件;

(2)大多數(shù)的 make 都支持“makefile”和“Makefile”這兩種默認(rèn)文件名;

(3)可以使用別的文件名來(lái)書(shū)寫(xiě) Makefile,比如 : “ Make.Linux” ,“Make.Solaris”,“Make.AIX”等。

  • 如果要指定特定的 Makefile,你可以使用 make 的“-f”和“--file”參數(shù),如:make -f Make.Linux 或 make --file Make.AIX。

3、引用其他Makefile文件

(1)例子如:(這里可以有空字符)include ?foo.make ?*.mk ? $(bar)?

(2)細(xì)節(jié)注意

  • 被包含的文件會(huì)原模原樣的放在當(dāng)前文件的包含位置;
  • 在 include前面可以有一些空字符,但是絕不能是[Tab]鍵開(kāi)始;
  • include和文件之間,可以用一個(gè)或多個(gè)空格隔開(kāi)。

4、環(huán)境變量MAKEFILES

(1)如果你的當(dāng)前環(huán)境中定義了環(huán)境變量 MAKEFILES,那么,make 會(huì)把這個(gè)變量中的值做一個(gè)類(lèi)似于 include 的動(dòng)作。

(2)它和 include不同的是,從這個(gè)環(huán)境變中引入的 Makefile 的“目標(biāo)”不會(huì)起作用,如果環(huán)境變量中定義的文件發(fā)現(xiàn)錯(cuò)誤,make 也會(huì)不理。

(3)這個(gè)變量中的值是其它的 Makefile,用空格分隔。

(4)建議不要使用這個(gè)環(huán)境變量,因?yàn)橹灰@個(gè)變量一被定義,那么當(dāng)你使用 make 時(shí), 所有的 Makefile 都會(huì)受到它的影響。


5、Makefile的工作方式

(1)讀入所有的 Makefile;

(2)讀入被 include 的其它 Makefile;

(3)初始化文件中的變量;

(4)推導(dǎo)隱晦規(guī)則,并分析所有規(guī)則;

(5)為所有的目標(biāo)文件創(chuàng)建依賴(lài)關(guān)系鏈;

(6)根據(jù)依賴(lài)關(guān)系,決定哪些目標(biāo)要重新生成;

(7)執(zhí)行生成命令。


總結(jié)

以上是生活随笔為你收集整理的《跟我一起写Makefile》读书笔记(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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