GNU MAKE學習

 Linux程序員必須學會使用GNU make來構建和管理自己的軟件工程。GNU的make能夠使整個軟件工程的編譯、鏈接只需要一個命令就可以完成。

     make在執行時, 需要一個命名爲makefile的文件。makefile文件描述了整個工程的編譯,鏈接等規則。其中包括:工程中的哪些源文件需要編譯以及如何編譯;需要創建哪些庫文件以及如何創建這些庫文件、如何最後產生我們想要得到的可執行文件。

規則:用於說明如何生成一個或多個目標文件

規則格式如下:

targets : prerequisites

    command

目標 : 依賴

    命令

main.o : main.c 

    gcc –c main.c

**命令需要以【TAB】鍵開始**

      在makefile 中,規則的順序是很重要的,因爲,Makefile中只應該有一個最終目標,其它的目標都是被這個目標所連帶出來的,所以一定要讓make知道你的最終目標是什麼。 一般來說,定義在Makefile中的目標可能會有很多,但是第一條規則中的目標將被確立爲最終的目標。

 

 

     make命令默認在當前目錄下尋找名字爲makefile或者Makefile的工程文件,當名字不爲這兩者之一時,可以使用如下方法指定:make -f 文件名 

     makefile中把那些沒有任何依賴只有執行動作的目標稱爲“僞目標”(phony targets)。

.PHONY : clean

clean :

rm –f hello main.o func1.o func2.o

“.PHONY” 將“clean”目標聲明爲僞目標

 

在makefile中,存在系統默認的自動化變量

$^:代表所有的依賴文件

$@:代表目標

$<:代表第一個依賴文件

例:

hello: main.o func1.o func2.o

    gcc main.o func1.o func2.o -o hello

=》

hello: main.o func1.o func2.o

 gcc $^ -o $@

 

Makefile中“#”字符後的內容被視作註釋。

hello: hello.c

@gcc hello.c –o hello

@:取消回顯(演示)

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