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指令碼 軟體管理 網路基礎的建立 發生問題的解決途...