日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

makefile之目标与依赖(1)

發(fā)布時(shí)間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 makefile之目标与依赖(1) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.makefile的規(guī)則:

target:prerequisites?
? ? ? ? command

target是一個(gè)目標(biāo)文件,可以是一個(gè).o文件,也可以是可執(zhí)行文件,還可以是標(biāo)簽(偽目標(biāo))?
prerequisites就是要生成這個(gè)target所需要依賴(lài)的文件?
command就是生成這個(gè)目標(biāo)所要執(zhí)行的命令(任意的shell命令)?
這其實(shí)就是一個(gè)文件的依賴(lài)關(guān)系,target需要依賴(lài)prerequisite中的文件,其生成規(guī)則定義在command中。?


2.make是如何工作的?
如果我們要編譯一個(gè)edit可執(zhí)行文件,依賴(lài)文件為幾個(gè)頭文件和幾個(gè).c文件?
a.make會(huì)在當(dāng)前目錄下尋找名字為Makefile或者makefile的文件?
b.如果找到,它會(huì)找文件中的第一個(gè)目標(biāo)文件,也就是edit文件,并把這個(gè)文件作為最終的目標(biāo)文件?
c.如果edit文件不存在,或者是edit所依賴(lài)的后面的.o文件的修改時(shí)間比edit這個(gè)文件新,那么,他會(huì)執(zhí)行后面command定義的命令來(lái)生成這個(gè)edit文件?
d.如果edit所依賴(lài)的.o文件也存在,那么make會(huì)在當(dāng)前文件中找目標(biāo)為.o文件的依賴(lài),如果找到再根據(jù)它的規(guī)則生成.o文件?
e.最終找到所有目標(biāo)的依賴(lài),依次生成所需要的目標(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)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。