bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

怎么掌握Makefile的知識

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

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

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

怎么掌握Makefile的知識

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

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

我們來看一個實際例子。下圖為一段很簡單的 Golang 代碼:

怎么掌握Makefile的知識

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

gofmt -w xxx.go

運行以后,如下圖所示:

怎么掌握Makefile的知識

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

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

要敲的鍵盤就更多了。

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

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

如下圖所示:

怎么掌握Makefile的知識

于是,當我們在項目根目錄執(zhí)行命令:make fmt的時候,整個項目里面的所有.go文件都會被自動格式化。

Makefile文件的格式如下:

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

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

我們再來舉個例子,現(xiàn)在,我需要把項目編譯生成一個可執(zhí)行文件,然后把這個可執(zhí)行文件連同data.json一起復(fù)制到 一個叫做 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/

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

再來一個例子,可能有一些程序開發(fā)完成以后,需要在本地 Docker  環(huán)境里面運行。但是如果已經(jīng)有一個同名容器在運行了,我們必須先停止容器,刪除容器,然后才能重新運行。但是如果有了  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)多個名字下面的 shell 命令。例如,我想先格式化代碼,然后編譯成可執(zhí)行文件,最后再使用 Docker  部署,那么,我們最終的 Makefile 文件如下圖所示:

怎么掌握Makefile的知識

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

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

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

當前標題:怎么掌握Makefile的知識
URL地址:http://vcdvsql.cn/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)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營