欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語(yǔ)言build指令 go語(yǔ)言執(zhí)行cmd命令

Go語(yǔ)言的跨平臺(tái)能力到底有多強(qiáng)?看完你就知道了

對(duì)比于其他語(yǔ)言的程序,Go語(yǔ)言的跨平臺(tái)能力是真的強(qiáng),拿.Net和JAVA來(lái)說(shuō)吧,.Net在.Net core出現(xiàn)之前是不能跨平臺(tái)的,只能在windows上編譯運(yùn)行,即使是.net core出現(xiàn)以后,跨平臺(tái)的程序也是相當(dāng)?shù)穆闊6鴍ava雖然一直都可以跨平臺(tái),但是運(yùn)行JAVA程序的機(jī)器上也必須要有JAVA程序運(yùn)行環(huán)境JRE。而相對(duì)于Go程序,跨平臺(tái)就簡(jiǎn)單的多了,只需要在編譯指定目標(biāo)程序運(yùn)行的架構(gòu)和環(huán)境即可編譯出指定操作系統(tǒng)和架構(gòu)的程序。

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)莆田,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

以上是指定了go的環(huán)境變量后執(zhí)行的go build命令進(jìn)行目標(biāo)程序的構(gòu)建,這種方式會(huì)一直生效的,如果不讓他一直生效,可以在構(gòu)建的時(shí)候臨時(shí)指定環(huán)境變量,下面以window的環(huán)境為例,來(lái)介紹臨時(shí)指定環(huán)境變量的方式構(gòu)建可以在Linux環(huán)境下運(yùn)行的可執(zhí)行程序:

可以根據(jù)不同的架構(gòu)和操作系統(tǒng)將其編寫為不同的.bat的可執(zhí)行文件放置在程序的根目錄,Linux的和MAC的也一樣編寫成腳本文件放置在程序的根目錄,這樣在構(gòu)建的時(shí)候就不用再敲命令了,直接運(yùn)行腳本就可以了。

Java程序編譯打包后為war包或者是java包,必須執(zhí)行java -jar 命令或者將其放置到tomcat的指定目錄下,運(yùn)行tomcat程序。而Go語(yǔ)言編寫的程序最終為可執(zhí)行的文件(window下編譯出的是.exe的可執(zhí)行文件),只需要將其賦予可執(zhí)行的權(quán)限就可以直接運(yùn)行了。

構(gòu)建JAVA程序的鏡像需要指定java的基礎(chǔ)鏡像,否則就需要在鏡像中安裝java的運(yùn)行環(huán)境了,下面展示的是構(gòu)建的一個(gè)JAVA程序的鏡像,構(gòu)建出來(lái)鏡像的體積相對(duì)比較大

而Go程序制作出的鏡像就不需要安裝任何的依賴環(huán)境,因?yàn)樗诖虬臅r(shí)候就已經(jīng)將依賴的包一塊打包到一起了

拿著這個(gè)鏡像就可以到處運(yùn)行了。

通過(guò)對(duì)比我們可以發(fā)現(xiàn),如果沒有之前的技術(shù)和業(yè)務(wù)的積累,重新開發(fā)一個(gè)新的項(xiàng)目,使用go去開發(fā)無(wú)疑是最容易上手的,所以現(xiàn)在很多公司都使用go進(jìn)行開發(fā),也逐漸將其他語(yǔ)言的項(xiàng)目逐步的用go語(yǔ)言進(jìn)行改造。其實(shí)用什么語(yǔ)言不重要,合適的才重要,開發(fā)項(xiàng)目在選擇語(yǔ)言的時(shí)候也會(huì)綜合多方面來(lái)考慮選擇合適的語(yǔ)言和架構(gòu),畢竟很多公司都不是搞研究的,都需要項(xiàng)目來(lái)賺錢,所以開發(fā)的速度、客戶的滿意度、項(xiàng)目交付的時(shí)間才是驅(qū)動(dòng)公司技術(shù)的主要因素。

我們個(gè)人也應(yīng)該不斷完善自己的技術(shù)棧,不應(yīng)該太依靠某種語(yǔ)言,最重要的還是自己的架構(gòu)思想和底層架構(gòu)知識(shí),只有掌握了這些才能夠不被 社會(huì) 和公司“優(yōu)化”。

go語(yǔ)言命令行打印清除

命令如下:

直接在終端中輸入gohelp即可顯示所有的go命令以及相應(yīng)命令功能簡(jiǎn)介,主要有下面這些:

build:編譯包和依賴;clean:移除對(duì)象文件;doc:顯示包或者符號(hào)的文檔;env:打印go的環(huán)境信息;bug:啟動(dòng)錯(cuò)誤報(bào)告;fix:運(yùn)行g(shù)otoolfix;fmt:運(yùn)行g(shù)ofmt進(jìn)行格式化;generate:從processingsource生成go文件

get:下載并安裝包和依賴;install:編譯并安裝包和依賴;list:列出包;run:編譯并運(yùn)行g(shù)o程序;test:運(yùn)行測(cè)試;tool:運(yùn)行g(shù)o提供的工具;version:顯示go的版本;vet:運(yùn)行g(shù)otoolvet;命令的使用方式為:gocommand[args],除此之外,可以使用gohelp;來(lái)顯示指定命令的更多幫助信息。;在運(yùn)行g(shù)ohelp時(shí),不僅僅打印了這些命令的基本信息,還給出了一些概念的幫助信息:;c:Go和c的相互調(diào)用;buildmode:構(gòu)建模式的描述;filetype:文件類型;gopath:GOPATH環(huán)境變量

environment:環(huán)境變量;importpath:導(dǎo)入路徑語(yǔ)法;packages:包列表的描述;testflag:測(cè)試符號(hào)描述;testfunc:測(cè)試函數(shù)描述等。

golang項(xiàng)目中使用條件編譯

golang中沒有類似C語(yǔ)言中條件編譯的寫法,比如在C代碼中可以使用如下語(yǔ)法做一些條件編譯,結(jié)合宏定義來(lái)使用可以實(shí)現(xiàn)諸如按需編譯release和debug版本代碼的需求

build tags 是通過(guò)代碼注釋的形式實(shí)現(xiàn)的,要寫在文件的最頂端;

go build指令在編譯項(xiàng)目的時(shí)候會(huì)檢查每一個(gè)文件的build tags,用來(lái)決定是編譯還是跳過(guò)該文件

build tags遵循以下規(guī)則

示例:

約束此文件只能在支持kqueue的BSD系統(tǒng)上編譯

一個(gè)文件可能包含多行條件編譯注釋,比如:

約束該文件在linux/386 或 darwin/386平臺(tái)編譯

需要注意的點(diǎn)

正確的寫法如下:

編譯方法:

具有_$GOOS.go后綴的go文件在編譯的時(shí)候會(huì)根據(jù)當(dāng)前平臺(tái)來(lái)判斷是否將該文件導(dǎo)入并編譯;同樣適用于處理器架構(gòu)判斷 _$GOARCH.go。

兩者可以結(jié)合起來(lái)使用,形式為: _$GOOS_$GOARCH.go

示例:

文件名必須提供,如果只由后綴的文件名會(huì)被編譯器忽略,比如:

這兩個(gè)文件會(huì)被編譯器忽略,因?yàn)橐韵聞澗€開頭的文件都會(huì)被忽略

當(dāng)前文章:go語(yǔ)言build指令 go語(yǔ)言執(zhí)行cmd命令
轉(zhuǎn)載來(lái)于:http://www.chinadenli.net/article32/dddsisc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)手機(jī)網(wǎng)站建設(shè)定制網(wǎng)站自適應(yīng)網(wǎng)站營(yíng)銷型網(wǎng)站建設(shè)ChatGPT

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化