Makefile詳解 概述

2021-07-24 07:08:32 字數 930 閱讀 1623

什麼是makefile?或許很多winodws的程式設計師都不知道這個東西,因為那些windows的ide都為你做了這個工作,但我覺得要作乙個好的和professional的程式設計師,makefile還是要懂。這就好像現在有這麼多的html的編輯器,但如果你想成為乙個專業人士,你還是要了解html的標識的含義。特別在unix下的軟體編譯,你就不能不自己寫makefile了,會不會寫makefile,從乙個側面說明了乙個人是否具備完成大型工程的能力。

因為,makefile關係到了整個工程的編譯規則。乙個工程中的原始檔不計數,其按型別、功能、模組分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯,甚至於進行更複雜的功能操作,因為makefile就像乙個shell指令碼一樣,其中也可以執行

作業系統

的命令。

makefile帶來的好處就是——「自動化編譯」,一旦寫好,只需要乙個make命令,整個工程完全自動編譯,極大的提高了軟體開發的效率。make是乙個命令工具,是乙個解釋makefile中指令的命令工具,一般來說,大多數的ide都有這個命令,比如:delphi的make,visual c++的nmake,linux下gnu的make。可見,makefile都成為了一種在工程方面的編譯方法。

現在講述如何寫makefile的文章比較少,這是我想寫這篇文章的原因。當然,不同產商的make各不相同,也有不同的語法,但其本質都是在「檔案依賴性」上做文章,這裡,我僅對gnu的make進行講述,我的環境是redhat linux 8.0,make的版本是3.80。必竟,這個make是應用最為廣泛的,也是用得最多的。而且其還是最遵循於ieee 1003.2-1992 標準的(posix.2)。

在這篇文件中,將以c/c++的原始碼作為我們基礎,所以必然涉及一些關於c/c++的編譯的知識,相關於這方面的內容,還請各位檢視相關的編譯器的文件。這裡所預設的編譯器是unix下的gcc和cc。

Makefile詳解 介紹

make命令執行時,需要乙個 makefile 檔案,以告訴make命令需要怎麼樣的去編譯和鏈結程式。首先,我們用乙個示例來說明makefile的書寫規則。以便給大家乙個感興認識。這個示例 於gnu的make使用手冊,在這個示例中,我們的工程有8個c檔案,和3個頭檔案,我們要寫乙個makefile來...

Makefile詳解 內容

makefile裡主要包含了五個東西 顯式規則 隱晦規則 變數定義 檔案指示和注釋。1 顯式規則。顯式規則說明了,如何生成乙個或多的的目標檔案。這是由makefile的書寫者明顯指出,要生成的檔案,檔案的依賴檔案,生成的命令。2 隱晦規則。由於我們的make有自動推導的功能,所以隱晦的規則可以讓我們...

通用Makefile詳解

我們在linux環境下開發程式,少不了要自己編寫makefile,乙個稍微大一些的工程下面都會包含很多。c的源文 件。如果我們用gcc去乙個乙個編譯每乙個原始檔的話,效率會低很多,但是如果我們可以寫乙個makefile,那麼只需要執行乙個make就ok了,這 樣大大提高了開發效率。但是makefil...