在 linux(unix )環境下使用gnu 的make工具能夠比較容易的構建乙個屬於你自己的工程,整個工程的編譯只需要乙個命令就可以完成編譯、連線以至於最後的執行。不過這需要我們投入一些時間去完成乙個或者多個稱之為makefile 檔案的編寫。make工具最主要功能就是通過makefile檔案來描述源程式之間的相互關係並自動維護編譯工作。而makefile 檔案需要按照某種語法進行編寫,檔案中需要說明如何編譯各個原始檔並連線生成可執行檔案,並要求定義原始檔之間的依賴關係。makefile 檔案是許多編譯器–包括 windows nt 下的編譯器–維護編譯資訊的常用方法,只是在整合開發環境中,使用者通過友好的介面修改 makefile 檔案而已。所寫的makefile 檔案描述了整個工程的編譯、連線等規則。其中包括:工程中的哪些原始檔需要編譯以及如何編譯、需要建立哪些庫檔案以及如何建立這些庫檔案、如何最後產生我們想要的可執行檔案。這樣的好處是能夠使用一行命令來完成**「自動化編譯」**,一旦提供乙個(通常對於乙個工程來說會是多個)正確的 makefile。編譯整個工程你所要做的事就是在shell 提示符下輸入make命令。整個工程完全自動編譯,極大提高了效率。
make是乙個命令工具,它解釋makefile 中的指令。在makefile檔案中描述了整個工程所有檔案的編譯順序、編譯規則。makefile 有自己的書寫格式、關鍵字、函式。
makefile檔案作為一種描述文件一般需要包含以下內容:
◆巨集定義
◆ 原始檔之間的相互依賴關係
◆ 可執行的命令
makefile中允許使用簡單的巨集指代原始檔及其相關編譯資訊,在linux中也稱巨集為變數。在引用巨集時只需在變數前加$符號,但值得注意的是,如果變數名的長度超過乙個字元,在引用時就必須加圓括號()。
為了makefile易維護,我們可用變數來定義字串,可理解成c中的巨集。如宣告一變數叫objects(名字任意,只要能表示obj檔案就行),我們在makefile中一開始就這樣定義:objects=main.o kdb.o command.o\於是我們可用很方便的在我們的makefile中以「$(objects)」的方式來使用這個變數了。
Linux中的Makefile介紹
1.makefile介紹 在linux中使用make命令來編譯程式,特別是大程式 而make命令所執行的動作依賴於makefile檔案。最簡單的makefile檔案如下 hello hello.c gcc o hello hello.c 以tab鍵縮排 clean rm f hello 以tab鍵縮...
Linux中Makefile的使用
我也是初學linux,對linux中的編譯產生的一定的厭煩,正巧遇到了makefile。一 makefile的引入 我們現在已有main.c,mymath.c,mymath.h三個檔案,想要此程式能正常執行就需要輸入以下命令進行編譯連線。但是當檔案多了之後就可能需要多個檔名,會產生極大的麻煩。有了m...
關於Linux中Makefile 檔案的使用
大學有陣子做嵌入式的時候覺得makefile簡直高不可攀 教程大多數都在試圖把許多細節都講清楚 沒有跟教程死磕3天的勁頭真的不容易搞懂makefile 而且寫makefile需要一點點gcc編譯器的儲備知識。對於在linux上剛上手的開發者的確有點繞。所以我在這裡做了個最簡版的makefile,看懂...