makefile文件

  makefile文件保存了編譯器和連接器的參數選項,還表述了所有源文件之間的關係(源代碼文件需要的特定的包含文件,可執行文件要求包含的目標文件模塊及庫等).創建程序(make程序)首先讀取makefile文件,然後再激活編譯器,彙編器,資源編譯器和連接器以便產生最後的輸出,最後輸出並生成的通常是可執行文件.創建程序利用內置的推理規則來激活編譯器,以便通過對特定CPP文件的編譯來產生特定的OBJ文件.
Makefile裏主要包含了五個東西:顯式規則、隱晦規則、變量定義、文件指示和註釋。

顯式規則

  顯式規則說明了,如何生成一個或多的的目標文件。這是由Makefile的書寫者明顯指出,要生成的文件,文件的依賴文件,生成的命令。
隱晦規則
  由於我們的make有自動推導的功能,所以隱晦的規則可以讓我們比較粗糙地簡略地書寫Makefile,這是由make所支持的。
變量的定義
  在Makefile中我們要定義一系列的變量,變量一般都是字符串,這個有點你C語言中的宏,當Makefile被執行時,其中的變量都會被擴展到相應的引用位置上。
文件指示
  其包括了三個部分,一個是在一個Makefile中引用另一個Makefile,就像C語言中的include一樣;另一個是指根據某些情況指定Makefile中的有效部分,就像C語言中的預編譯#if一樣;還有就是定義一個多行的命令。有關這一部分的內容,我會在後續的部分中講述。
註釋
  Makefile中只有行註釋,和UNIX的Shell腳本一樣,其註釋是用“#”字符,這個就像C/C++中的“//”一樣。如果你要在你的Makefile中使用“#”字符,可以用反斜框進行轉義,如:“#”。
  默認的情況下,make命令會在當前目錄下按順序找尋文件名爲“GNUmakefile”、“makefile”、“Makefile”的文件,找到了解釋這個文件。在這三個文件名中,最好使用“Makefile”這個文件名,因爲,這個文件名第一個字符爲大寫,這樣有一種顯目的感覺。最好不要用GNUmakefile,這個文件是GNU的make識別的。有另外一些make只對全小寫的“makefile”文件名敏感,但是基本上來說,大多數的make都支持“makefile”和“Makefile”這兩種默認文件名。
  在Makefile使用include關鍵字可以把別的Makefile包含進來,這很像C語言的#include,被包含的文件會原模原樣的放在當前文件的包含位置。include的語法是:
include ; filename可以是當前操作系統Shell的文件模式(可以保含路徑和通配符)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章