初識Makefile

1.爲什麼需要Makefile?
       在LInux下,一個工程中的源文件不計其數,其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些文件需要先編譯,哪些文件需要後編譯,哪些文件需要重新編譯,甚至於進行更復雜的功能操作,因爲 makefile就像一個Shell一樣,其中也可以執行操作系統的命命令。
2.什麼是Makefile?
        所要完成的Makefile 文件描述了整個工程的編譯、連接等規則。其中包括:工程中的哪些源文件需要編譯以及如何編譯、需要創建那些庫文件以及如何創建這些庫文件、如何最後產生我們想要的可執行文件。儘管看起來可能是很複雜的事情,但是爲工程編寫Makefile 的好處是能夠使用一行命令來完成“自動化編譯”,一旦提供一個(通常對於一個工程來說會是多個)正確的 Makefile。編譯整個工程你所要做的唯一的一件事就是在shell 提示符下輸入make命令。整個工程完全自動編譯,極大提高了效率。
make是一個命令工具,它解釋Makefile 中的指令(應該說是規則)。在Makefile文件中描述了整個工程所有文件的編譯順序、編譯規則。Makefile 有自己的書寫格式、關鍵字、函數。像C 語言有自己的格式、關鍵字和函數一樣。而且在Makefile 中可以使用系統shell所提供的任何命令來完成想要的工作。Makefile(在其它的系統上可能是另外的文件名)在絕大多數的IDE 開發環境中都在使用,已經成爲一種工程的編譯方法。
3.如何編寫Makefile文件?
   在Makefile中,Makefile是一個文本文件,與之對應的命令是make,編寫Makefile文件是需要註明依賴文件和依賴關係。
目標文件:依賴文件
                  依賴關係               
4.下面我們就來一起寫一個簡單的Makefile文件
(1)先編輯一個hello.c的文件
(2)touch一個Makefile文件並且編輯Makefile
注意 :hello:hello.c 這裏 hello 文件依賴於hello.c文件
gcc  -o 編譯的規則:-o是目標文件 
clean在這裏相當於一條命令,並沒有依賴文件,所以只用寫一個clean即可。
它的作用是刪除可執行程序hello文件。
(3)使用make命令
這時候目標文件hello就編譯鏈接好了。
然後運行hello文件,我們看結果
運行結果成功
(4)clean,當這種後面不跟依賴文件的時候,那麼踏後面跟的命令將不會被執行,當我們需要執行clean來刪除工程時,make clean就可以了。
這就是一個簡單的Makefile的編寫。



發佈了46 篇原創文章 · 獲贊 16 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章