真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語(yǔ)言能用在arm里么 go語(yǔ)言可以做嵌入式嗎

如何編譯arm linux的go

Golang也就是Go語(yǔ)言,現(xiàn)在已經(jīng)發(fā)行到1.4.1版本了,語(yǔ)言特性優(yōu)越性和背后Google強(qiáng)大靠山什么的就不多說(shuō)了。Golang的官方提供了多個(gè)平臺(tái)上的二進(jìn)制安裝包,遺憾的是并非沒(méi)有發(fā)布ARM平臺(tái)的二進(jìn)制安裝包。ARM平臺(tái)沒(méi)辦法直接從官網(wǎng)下載二進(jìn)制安裝包來(lái)安裝,好在Golang是支持多平臺(tái)并且開(kāi)源的語(yǔ)言,因此可以通過(guò)直接在ARM平臺(tái)上編譯源代碼來(lái)安裝。整個(gè)過(guò)程主要包括編譯工具配置、獲取Golang源代碼、設(shè)置Golang編譯環(huán)境變量、編譯、配置Golang行環(huán)境變量等步驟。

創(chuàng)新互聯(lián)是一家專業(yè)提供海珠企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為海珠眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

注:本文選用樹(shù)莓派做測(cè)試,因?yàn)闃?shù)莓派是基于ARM平臺(tái)的。

1、編譯工具配置

據(jù)說(shuō)下個(gè)版本的golang編譯工具要使用golang自己來(lái)寫(xiě),但目前還是使用C編譯工具的。因此,首先要配置好C編譯工具:

1.1 在Ubuntu或Debian平臺(tái)上可以使用sudo apt-get install gcc libc6-dev命令安裝,樹(shù)莓派的RaspBian系統(tǒng)是基于Debian修改的,所以可以使用這種方法安裝。

1.2 在RedHat或CentOS 6平臺(tái)上可以使用sudo yum install gcc libc-devel命令安裝。

安裝完成后可以輸入 gcc --version命令驗(yàn)證是否成功安裝。

2、獲取golang源代碼

2.1 直接從官網(wǎng)下載源代碼壓縮包。

golang官網(wǎng)提供golang的源代碼壓縮包,可以直接下載,最新的1.4.1版本源代碼鏈接:

2.2 使用git工具獲取。

golang使用git版本管理工具,也可以使用git獲取golang源代碼。推薦使用這個(gè)方法,因?yàn)橐院罂梢噪S時(shí)獲取最新的golang源代碼。

2.2.1 首先確認(rèn)ARM平臺(tái)上已經(jīng)安裝了git工具,可以使用git --version命令確認(rèn)。一般linux平臺(tái)都安裝了git,沒(méi)有的話可以自行安裝,不同平臺(tái)的安裝方法可以參考:

2.2.2 克隆遠(yuǎn)程golang的git倉(cāng)庫(kù)到本地

在終端cd到你想要安裝golang的目錄,確保該目錄下沒(méi)有名為go的目錄。然后以下命令獲取代碼倉(cāng)庫(kù):

git clone

大陸地區(qū)可能會(huì)獲取失敗,在不翻墻的情況下我試了幾次都沒(méi)成功,原因大家都懂的。好在google已經(jīng)將golang也托管到github上面,所以也可以通過(guò)下面命令獲?。?/p>

git clone

視網(wǎng)絡(luò)情況,下載可能需要不少時(shí)間。我2M的帶寬花了將近兩個(gè)小時(shí)才下載完,雖然整個(gè)項(xiàng)目不過(guò)幾十兆= =

下載完成后,可以看到目錄下多了一個(gè)go目錄,里面即為golang的源代碼,在終端上執(zhí)行cd go命令進(jìn)入該目錄。

執(zhí)行下面命令檢出go1.4.1版本的源代碼,因?yàn)楝F(xiàn)在已經(jīng)有新的代碼提交上去了,最新的代碼可能不是最穩(wěn)定的:

git checkout go1.4.1

至此,最新1.4.1發(fā)行版的源代碼獲取完畢

3、設(shè)置golang的編譯環(huán)境變量

主要有GOROOT、GOOS、GOARCH、GOARM四個(gè)環(huán)境變量需要設(shè)置,先解釋四個(gè)環(huán)境變量的意義。

3.1 GOROOT

主要代表golang樹(shù)結(jié)構(gòu)目錄的路徑,也就是上面git檢出的go目錄。一般可以不用設(shè)置這個(gè)環(huán)境變量,因?yàn)榫幾g的時(shí)候默認(rèn)會(huì)以go目錄下src子目錄中的all.bash腳本運(yùn)行時(shí)的父目錄作為GOROOT的值。為了保險(xiǎn)起見(jiàn),可以直接設(shè)置為go目錄的路徑。

3.2 GOOS和GOARCH

分別代表編譯的目標(biāo)系統(tǒng)和平臺(tái),可選值如下:

GOOS GOARCH

darwin 386

darwin amd64

dragonfly 386

dragonfly amd64

freebsd 386

freebsd amd64

freebsd arm

linux 386

linux amd64

linux arm

netbsd 386

netbsd amd64

netbsd arm

openbsd 386

openbsd amd64

plan9 386

plan9 amd64

solaris amd64

windows 386

windows amd64

需要注意的是這兩個(gè)值代表的是目標(biāo)系統(tǒng)和平臺(tái),而不是編譯源代碼的系統(tǒng)和平臺(tái)。樹(shù)莓派的RaspBian是linux系統(tǒng),所以這些GOOS設(shè)置為linux,GOARCH設(shè)置為arm。

3.3 GOARM

表示使用的浮點(diǎn)運(yùn)算協(xié)處理器版本號(hào),只對(duì)arm平臺(tái)有用,可選值有5,6,7。如果是在目標(biāo)平臺(tái)上編譯源代碼,這個(gè)值可以不設(shè)置,它會(huì)自動(dòng)判斷需要使用哪一個(gè)版本。

總結(jié)下來(lái),在樹(shù)莓派上設(shè)置golang的編譯環(huán)境變量,可編輯$HOME/.bashrc文件,在末尾添加下面內(nèi)容:

export GOROOT=你的go目錄路徑

export GOOS=linux

export GOARCH=arm

編輯完后保存,執(zhí)行source ~/.bashrc命令讓修改生效。

4、編譯源代碼

環(huán)境變量配置完成自后就可以開(kāi)始編譯源代碼。在go目錄下的src子目錄中,主要有all.bash和make.bash兩個(gè)腳本(另外還有兩個(gè)all.bat和make.bat腳本適用于window平臺(tái))。編譯實(shí)際上就是執(zhí)行其中一個(gè)腳本,兩者的區(qū)別在于all.bash在編譯完成后還會(huì)執(zhí)行一些測(cè)試套件。如果希望只編譯不測(cè)試,可以運(yùn)行make.bash腳本。使用cd命令進(jìn)入go下src目錄,執(zhí)行./all.bash或者./make.bash命令即可開(kāi)始編譯。由于硬件情況不同,編譯耗費(fèi)的時(shí)間不同。在我的B型樹(shù)莓派編譯過(guò)程花費(fèi)了將近半個(gè)小時(shí),編譯完成后執(zhí)行的測(cè)試套件又花費(fèi)了差不多一個(gè)小時(shí),總共花費(fèi)了一個(gè)半小時(shí)左右。

5、配置golang運(yùn)行環(huán)境變量

編譯完成后,go目錄下會(huì)生成bin目錄,里面就是go的運(yùn)行腳本。為了以后使用方法,可以將這個(gè)bin路徑添加到PATH環(huán)境變量中。同樣編輯~/.bashrc文件,因?yàn)榍懊嬖O(shè)置過(guò)GOROOT環(huán)境變量指向go目錄了,所以只需要在末尾加上

export PATH=$PATH:$GOROOT/bin

保存后同樣執(zhí)行source ~/.bashrc命令讓環(huán)境變量生效。

至此,golang源代碼編譯安裝成功。執(zhí)行g(shù)o version應(yīng)該就能看到當(dāng)前golang的版本信息,表示編譯安裝成功。

go是什么編程語(yǔ)言?主要應(yīng)用于哪些方面?

Go語(yǔ)言由Google公司開(kāi)發(fā),并于2009年開(kāi)源,相比Java/Python/C等語(yǔ)言,Go尤其擅長(zhǎng)并發(fā)編程,性能堪比C語(yǔ)言,開(kāi)發(fā)效率肩比Python,被譽(yù)為“21世紀(jì)的C語(yǔ)言”。

Go語(yǔ)言在云計(jì)算、大數(shù)據(jù)、微服務(wù)、高并發(fā)領(lǐng)域應(yīng)用應(yīng)用非常廣泛。BAT大廠正在把Go作為新項(xiàng)目開(kāi)發(fā)的首選語(yǔ)言。

Go語(yǔ)言能干什么?

1、服務(wù)端開(kāi)發(fā):以前你使用C或者C++做的那些事情,用Go來(lái)做很合適,例如日志處理、文件系統(tǒng)、監(jiān)控系統(tǒng)等;

2、DevOps:運(yùn)維生態(tài)中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go語(yǔ)言開(kāi)發(fā);

3、網(wǎng)絡(luò)編程:大量?jī)?yōu)秀的Web框架如Echo、Gin、Iris、beego等,而且Go內(nèi)置的 net/http包十分的優(yōu)秀;

4、Paas云平臺(tái)領(lǐng)域:Kubernetes和Docker Swarm等;

5、分布式存儲(chǔ)領(lǐng)域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;

6、區(qū)塊鏈領(lǐng)域:區(qū)塊鏈里面有兩個(gè)明星項(xiàng)目以太坊和fabric都使用Go語(yǔ)言;

7、容器虛擬化:大名鼎鼎的Docker就是使用Go語(yǔ)言實(shí)現(xiàn)的;

8、爬蟲(chóng)及大數(shù)據(jù):Go語(yǔ)言天生支持并發(fā),所以十分適合編寫(xiě)分布式爬蟲(chóng)及大數(shù)據(jù)處理。

Go語(yǔ)言能在安卓運(yùn)行嗎? Go是腳本語(yǔ)言還是匯編?

go可以在安卓運(yùn)行的,github.com/golang/mobile,這是用golang做移動(dòng)端開(kāi)發(fā)的庫(kù),

go是靜態(tài)編譯語(yǔ)言,不是腳本語(yǔ)言

go語(yǔ)言到底有什么好處

1. 部署簡(jiǎn)單

Go

編譯生成的是一個(gè)靜態(tài)可執(zhí)行文件,除了glibc外沒(méi)有其他外部依賴。這讓部署變得異常方便:目標(biāo)機(jī)器上只需要一個(gè)基礎(chǔ)的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應(yīng)用所需的各種包、庫(kù)的依賴關(guān)系,大大減輕了維護(hù)的負(fù)擔(dān)。

2. 并發(fā)性好

Goroutine和channel使得編寫(xiě)高并發(fā)的服務(wù)端軟件變得相當(dāng)容易,很多情況下完全不需要考慮鎖機(jī)制以及由此帶來(lái)的各種問(wèn)題。單個(gè)Go應(yīng)用也能有效的利用多個(gè)CPU核,并行執(zhí)行的性能好。

3. 良好的語(yǔ)言設(shè)計(jì)

從學(xué)術(shù)的角度講Go語(yǔ)言其實(shí)非常平庸,不支持許多高級(jí)的語(yǔ)言特性;但從工程的角度講,Go的設(shè)計(jì)是非常優(yōu)秀的:規(guī)范足夠簡(jiǎn)單靈活,有其他語(yǔ)言基礎(chǔ)的程序員都能迅速上手。更重要的是

Go 自帶完善的工具鏈,大大提高了團(tuán)隊(duì)協(xié)作的一致性。

4. 執(zhí)行性能好

雖然不如 C 和 Java,但相比于其他編程語(yǔ)言,其執(zhí)行性能還是很好的,適合編寫(xiě)一些瓶頸業(yè)務(wù),內(nèi)存占用也非常省。


網(wǎng)站題目:go語(yǔ)言能用在arm里么 go語(yǔ)言可以做嵌入式嗎
文章源于:http://weahome.cn/article/dojhojs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部