linux歷程 Makefile工程管理

2021-06-08 20:54:26 字數 947 閱讀 3207

1)簡介:make在執行時,需要乙個名為makefile的檔案,makefile檔案描述了整過工程的編譯,連線等規則。其中包括:工程中的哪些原始檔需要編譯以及如何編譯;需要建立哪些庫檔案以及如何建立這些庫檔案、如何最後產生我們想要的可執行行檔案。

2)規則:用於說明如何生成乙個或多個目標檔案。

規則格式:

target(目標):prerequisites(依賴)

command(命令)

如: main.o:main.c

gcc -c main.c

注意:命令必須以【tab】鍵開始。

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

4)檔名:make命令會在當前目錄下尋找名為makefile或makefile的檔案,當名字不為這兩者之一時,可用如下命令指定:

make -f 檔名

5)偽目標:makefile中把那些沒有任何依賴只有執行動作的目標稱為「偽目標」(phony targets)。

6)變數:在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 $@

7)雜項:makefile中「#」字元後的內容視為注釋

@ : 表示取消回顯

如:    hello:hello.c

@gcc hello.c -o hello

嵌入式Linux學習歷程 Makefile

makefile用來完成以下功能 1 如果工程沒有編譯過,那麼工程中的所有.c檔案都要被編譯並且鏈結成可執行檔案。2 如果工程中只有個別c檔案被修改了,那麼只編譯這些被修改的c檔案。3 如果工程的標頭檔案被修改了,那麼需要編譯所有引用這個標頭檔案的c檔案,並且鏈結成可執行檔案。例 乙個工程 通過鍵盤...

Linux學習歷程

我是在大二的時候接觸到linux的,現在看來也差不多兩年了。這兩年裡我也從對linux什麼都不懂慢慢到別人眼中的高手。而同學們裝linux時或系統有問題時也會找我來幫忙解決問題了。而且我也打算以後從事這方面的工作,回想起這兩年的學習歷程,感慨很多。我的專業是軟體工程,但我直到高三才真正摸過電腦。而且...

linux學習歷程

二 linux檔案 目錄與磁碟格式 總結記錄系統學習整理linux的收穫 鳥哥私房菜 unix 到 linux linux 當前應用場景 個人環境 雲端 linux 學習方法 商業版 社群版 作業系統的基本技能 vi文字編輯器 shell和shell指令碼 軟體管理 網路基礎的建立 發生問題的解決途...