欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么掌握Makefile的知識(shí)

今天就跟大家聊聊有關(guān)怎么掌握Makefile的知識(shí),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)十載來致力于為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作全網(wǎng)整合營(yíng)銷推廣、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了近千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。

如果你現(xiàn)在使用 macOS 或者 Linux,那么你可以在終端輸入命令man make,查看make命令的幫助文檔,如下圖所示:

怎么掌握Makefile的知識(shí)

通過make命令,你可以快速運(yùn)行一大段 Shell 命令,從而實(shí)現(xiàn)一鍵編譯代碼,一鍵格式化代碼等等功能。

要學(xué)習(xí) Makefile,你需要有一個(gè)Linux 或者  macOS,然后需要知道兩個(gè)概念:make命令和Makefile文件。其中,Makefile文件是你自己寫的一個(gè)文本文件,它的名字叫做Makefile,不能修改大小寫,只能叫這個(gè)名字。而make是  macOS 和 Linux 中自帶的一個(gè)命令。當(dāng)我們執(zhí)行make命令的時(shí)候,它自動(dòng)讀取Makefile文件,從而決定自己要做什么事情。

我們來看一個(gè)實(shí)際例子。下圖為一段很簡(jiǎn)單的 Golang 代碼:

怎么掌握Makefile的知識(shí)

代碼里面,有一些逗號(hào)后面沒有空格,結(jié)構(gòu)體也寫得參差不齊。當(dāng)我們要格式化一個(gè).go文件的時(shí)候,一般是在當(dāng)前文件夾下面執(zhí)行命令:

gofmt -w xxx.go

運(yùn)行以后,如下圖所示:

怎么掌握Makefile的知識(shí)

你為了執(zhí)行這個(gè)命令,你需要敲15次鍵盤。而且如果你的項(xiàng)目里面有很多個(gè).go文件,并且他們位于不同的文件夾里面,那么你還需要執(zhí)行命令:

find . -name "*.go" | xargs gofmt -w

要敲的鍵盤就更多了。

這個(gè)時(shí)候,我們可以在項(xiàng)目根目錄創(chuàng)建一個(gè)Makefile文件,其內(nèi)容如下:

fmt:  find . -name "*.go" | xargs gofmt -w

如下圖所示:

怎么掌握Makefile的知識(shí)

于是,當(dāng)我們?cè)陧?xiàng)目根目錄執(zhí)行命令:make fmt的時(shí)候,整個(gè)項(xiàng)目里面的所有.go文件都會(huì)被自動(dòng)格式化。

Makefile文件的格式如下:

名字1:  shell 命令1  shell 命令2  shell 命令3 名字2:  shell 命令4  shell 命令5  shell 命令6

其中,名字1 名字2用于執(zhí)行命令make 名字,每一個(gè)名字下面可以跟很多條 Shell 命令。這里看起來有點(diǎn)像是 Python  的縮進(jìn)。但需要特別注意的是,Makefile 的縮進(jìn)只能使用 Tab 鍵,不能使用空格。

我們?cè)賮砼e個(gè)例子,現(xiàn)在,我需要把項(xiàng)目編譯生成一個(gè)可執(zhí)行文件,然后把這個(gè)可執(zhí)行文件連同data.json一起復(fù)制到 一個(gè)叫做 output  的文件夾中。那么,我們的 Makefile 可以這樣寫:

fmt:  gofmt -w *.go  build:  rm -rf output  mkdir output  go build -o JsonReader main.go  mv JsonReader ./output/  cp data.json ./output/

然后,當(dāng)我們執(zhí)行命令make build的時(shí)候,它下面的5行命令就一次性自動(dòng)執(zhí)行了。

再來一個(gè)例子,可能有一些程序開發(fā)完成以后,需要在本地 Docker  環(huán)境里面運(yùn)行。但是如果已經(jīng)有一個(gè)同名容器在運(yùn)行了,我們必須先停止容器,刪除容器,然后才能重新運(yùn)行。但是如果有了  Makefile,這也就是一行命令的事情:

deploy:  docker build -t xxx:latest  docker stop json_reader  docker rm json_reader  docker run --name json_reader --network host -d xxx:latest

除此之外,Makefile 還支持串聯(lián)多個(gè)名字下面的 shell 命令。例如,我想先格式化代碼,然后編譯成可執(zhí)行文件,最后再使用 Docker  部署,那么,我們最終的 Makefile 文件如下圖所示:

怎么掌握Makefile的知識(shí)

此時(shí),我只需要在項(xiàng)目根目錄中執(zhí)行命令make,不帶任何參數(shù),那么,fmt、build和deploy下面的所有 Shell  命令都會(huì)按順序依次執(zhí)行。從而大大減少了我們的工作量。

可以說,無論是 Golang 項(xiàng)目還是 Python 還是其他項(xiàng)目,使用 Makefile 來自動(dòng)化執(zhí)行一些繁瑣重復(fù)的命令,是一個(gè)一勞永逸的事情。

看完上述內(nèi)容,你們對(duì)怎么掌握Makefile的知識(shí)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前標(biāo)題:怎么掌握Makefile的知識(shí)
URL地址:http://aaarwkj.com/article10/iipodo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、自適應(yīng)網(wǎng)站電子商務(wù)、搜索引擎優(yōu)化建站公司、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
精品人妻一区二区三区观看| 精品国产av色一区二区| 91日本视频在线播放| 欧美艳星一区二区三区四区| 精品亚洲午夜久久久久| 国产精品兄妹在线观看91| 日本高清不卡免费在线观看视频一二三区 | 麻豆文化传媒免费网址| 开裆丝袜高跟啪啪高潮av| 亚洲日本av一区二区| 黄色三级亚洲男人的天堂| 97乱碰视频在线观看| 在线看黄色片播放器日韩| 一区二区三区四区中文在线| 国产熟女av一区二区| 久久96国产精品久久久| 看夫妻性生活免费视频| 日韩av有码在线播放| 一区二区亚洲欧美精品| 色吊最新在线视频免费观看| 国产女主播在线观看视频| 亚洲各类熟女们中文字幕| 一区二区三区日韩欧美在线 | 欧美日韩国产一区在线| 狠狠躁夜夜躁人人爽蜜桃| 欧美亚洲国语精品一区二区| 欧美日韩中文字幕精品视频| 91麻豆精品一二三区在线| 亚洲,日韩,欧美久久综合| 国产一级精品自拍视频| 天天操夜夜夜夜夜操| 免费午夜福利在线观看| 久久麻豆精亚洲av品国产一区| 亚洲精品综合在线二区| 精品国内日本一区二区| 日韩精品成人一区二区三区免费| 精品福利视频蜜臀91| 中文字幕熟妇人妻av在线| 国产精品水嫩水嫩粉嫩| 午夜激情在线观看国产| 国产亚洲欧美日韩各类|