make在執行時,需要乙個命名為makefile的檔案.make廢了檔案描述了整個工程編譯,鏈結的規則.
其中包括:工程中的哪些原始檔需要編譯以及如何編譯;需要建立哪些庫檔案以及如何建立這些庫檔案
如何最後產生我們想要得可執行檔案.
這就是乙個規則
targets:prerequisites
command
main.o:main.c
gcc -c main.c
mian.o 是目標,也就是最後產生的東西
main.c 是依賴,也就是原始檔
gcc -c main.c 是命令,也就是編譯,鏈結的規則
**命令需要以[tab]開始**
gcc -c main.c 生成.o檔案
gcc -c mian.c -o 生成可執行檔案
.phony:clean ".phony"將"clean"宣告成偽乙個沒有依賴的目標,只有目標沒有依賴,即偽目標
如果我們有多個依賴的時候我們可以在makefile中定義變數
obj=main.o func1.o func2.o func3.o
hello:$(obj)
gcc $(obj) -o hello
在新增或者修改依賴的時候就可以直接改變量賦值的地方修改就好.
$^:代表所有以來檔案
$@:代表目標
$<:代表第乙個依賴檔案
hello:main.o func1.o func2.o
gcc main.o func1.0 func2.o -o hello 改寫
hello:main.o func1.o func2.o
gcc $^ -o $@
如何使用注釋
#開始這一行就是注釋
@的使用
#有@不顯示編譯命令資訊(取消回顯)
main.o:main.c
@gcc -c main.c
#無@顯示編譯命令資訊(回顯)
main.o:main.c
gcc -c main.c
linux makefile檔案分析
cflags wall wstrict prototypes g fomit frame pointer ffreestanding all crt0.s leds.c arm linux gcc cflags c o crt0.o crt0.s arm linux gcc cflags c o l...
linux makefile檔案心得筆記
經過長時間學習linux makefile檔案,我針對乙個簡單的例項進行了對linux makefile檔案的總結 於是和大家分享一下,看完本文你肯定有不少收穫,希望本文能教會你更多東西。sample makefile edit main.o kbd.o command.o display.o 第一...
Linux makefile檔案的編寫
main.c include mytool1.h include mytool2.h intmain int argc,char ar mytool1.h ifndef mytool 1 h define mytool 1 h void mytool1 print char print str en...