makefile之目标与依赖(1)
1.makefile的規(guī)則:
target:prerequisites?
? ? ? ? command
target是一個(gè)目標(biāo)文件,可以是一個(gè).o文件,也可以是可執(zhí)行文件,還可以是標(biāo)簽(偽目標(biāo))?
prerequisites就是要生成這個(gè)target所需要依賴的文件?
command就是生成這個(gè)目標(biāo)所要執(zhí)行的命令(任意的shell命令)?
這其實(shí)就是一個(gè)文件的依賴關(guān)系,target需要依賴prerequisite中的文件,其生成規(guī)則定義在command中。?
2.make是如何工作的?
如果我們要編譯一個(gè)edit可執(zhí)行文件,依賴文件為幾個(gè)頭文件和幾個(gè).c文件?
a.make會(huì)在當(dāng)前目錄下尋找名字為Makefile或者makefile的文件?
b.如果找到,它會(huì)找文件中的第一個(gè)目標(biāo)文件,也就是edit文件,并把這個(gè)文件作為最終的目標(biāo)文件?
c.如果edit文件不存在,或者是edit所依賴的后面的.o文件的修改時(shí)間比edit這個(gè)文件新,那么,他會(huì)執(zhí)行后面command定義的命令來生成這個(gè)edit文件?
d.如果edit所依賴的.o文件也存在,那么make會(huì)在當(dāng)前文件中找目標(biāo)為.o文件的依賴,如果找到再根據(jù)它的規(guī)則生成.o文件?
e.最終找到所有目標(biāo)的依賴,依次生成所需要的目標(biāo),最終生成最后的目標(biāo)文件。?
?
舉例:創(chuàng)建makefile
test:main.o
?? ?gcc -o test main.o
main.o:main.c
?? ?gcc -c main.c
總結(jié)
以上是生活随笔為你收集整理的makefile之目标与依赖(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Python的一切:2018年,你读
- 下一篇: 抖音封杀小猪佩奇,一年赚100亿的“社会