安裝go
創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營(yíng)銷型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
倉(cāng)庫安裝
$ sudo apt-get install golang
源碼安裝
安裝gcc工具,因?yàn)間olang有些功能是使用c寫的,所以構(gòu)建golang的編譯是必須的
$ sudo apt-get install bison gawk gcc libc6-dev make
安裝mercurial工具,目的使用hg命令來提取golang的源代碼
$ sudo apt-get install mercurial
代取提取,如果網(wǎng)速比較慢的話,此步要多花點(diǎn)時(shí)間
$ hg clone -r release go
編譯golang
$ cd go/src
$ ./all.bash
gvm安裝
$ sudo apt-get install curl Git mercurial make binutils bison gcc build-essential
$ bash (curl -s -S -L )
安裝完終端會(huì)提示(按提示輸入)
Cloning from to /home/c3t/.gvm
Created profile for existing install of Go at "/usr/lib/go"
Installed GVM v1.0.22
Please restart your terminal session or to get started right away run
`source /home/root/.gvm/scripts/gvm`123456123456
$ source /home/root/.gvm/scripts/gvm
gvm安裝完成
$ gvm version
列出所有支持的版本
$ gvm listall
下載源碼編譯安裝 go1.4
$ gvm install go1.4
使用go1.4
$ gvm use go1.4
若想安裝go1.5.2
$ gvm install go1.5.2
開機(jī)默認(rèn)使用1.5.2
$ gvm use go1.5.2 --default
列出已安裝版本
$ gvm list
請(qǐng)自行查看我前面寫得GO語言開發(fā)環(huán)境和GO語言IDE編輯器的經(jīng)驗(yàn)文章
我們先寫一段GO代碼
很簡(jiǎn)單就是打印輸出一個(gè)hello world!
保存為print.go文件
然后再CMD下一路cd到print.go目錄下來
在cmd下運(yùn)行 go run print.go就可以運(yùn)行g(shù)o程序了
看看運(yùn)行結(jié)果
GO程序的代碼是可以直接編譯成exe文件的
在print.go目錄下運(yùn)行 go build print.go即可把go程序編譯成exe文件
完成之后看看exe文件是否存在
最好我們要看看運(yùn)行exe的效果
對(duì)比于其他語言的程序,Go語言的跨平臺(tái)能力是真的強(qiáng),拿.Net和JAVA來說吧,.Net在.Net core出現(xiàn)之前是不能跨平臺(tái)的,只能在windows上編譯運(yùn)行,即使是.net core出現(xiàn)以后,跨平臺(tái)的程序也是相當(dāng)?shù)穆闊?。而java雖然一直都可以跨平臺(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)的程序。
以上是指定了go的環(huán)境變量后執(zhí)行的go build命令進(jìn)行目標(biāo)程序的構(gòu)建,這種方式會(huì)一直生效的,如果不讓他一直生效,可以在構(gòu)建的時(shí)候臨時(shí)指定環(huán)境變量,下面以window的環(huán)境為例,來介紹臨時(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語言編寫的程序最終為可執(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)建出來鏡像的體積相對(duì)比較大
而Go程序制作出的鏡像就不需要安裝任何的依賴環(huán)境,因?yàn)樗诖虬臅r(shí)候就已經(jīng)將依賴的包一塊打包到一起了
拿著這個(gè)鏡像就可以到處運(yùn)行了。
通過對(duì)比我們可以發(fā)現(xiàn),如果沒有之前的技術(shù)和業(yè)務(wù)的積累,重新開發(fā)一個(gè)新的項(xiàng)目,使用go去開發(fā)無疑是最容易上手的,所以現(xiàn)在很多公司都使用go進(jìn)行開發(fā),也逐漸將其他語言的項(xiàng)目逐步的用go語言進(jìn)行改造。其實(shí)用什么語言不重要,合適的才重要,開發(fā)項(xiàng)目在選擇語言的時(shí)候也會(huì)綜合多方面來考慮選擇合適的語言和架構(gòu),畢竟很多公司都不是搞研究的,都需要項(xiàng)目來賺錢,所以開發(fā)的速度、客戶的滿意度、項(xiàng)目交付的時(shí)間才是驅(qū)動(dòng)公司技術(shù)的主要因素。
我們個(gè)人也應(yīng)該不斷完善自己的技術(shù)棧,不應(yīng)該太依靠某種語言,最重要的還是自己的架構(gòu)思想和底層架構(gòu)知識(shí),只有掌握了這些才能夠不被 社會(huì) 和公司“優(yōu)化”。
只需要指定目標(biāo)操作系統(tǒng)的平臺(tái)和處理器架構(gòu)即可:
因?yàn)椴恢С諧GO,所以要禁用CGO
然后再執(zhí)行g(shù)o build命令,得到的就是能夠在Linux平臺(tái)運(yùn)行的可執(zhí)行文件了。
Mac 下編譯 Linux 和 Windows 平臺(tái) 64位 可執(zhí)行程序:
Linux下編譯 Mac 和 Windows 平臺(tái)64位可執(zhí)行程序:
Windows下編譯Mac平臺(tái)64位可執(zhí)行程序:
整個(gè)過程看起來非常簡(jiǎn)單,運(yùn)行起來也非常簡(jiǎn)單,調(diào)用make release命令,并給VERSION變量賦值不同的版本號(hào)即可:
命令會(huì)編譯出不同平臺(tái)可運(yùn)行的壓縮包:
Go是一個(gè)圖靈完備的語言
任何圖靈完備的語言理論上都可以用來編譯自身。比如c/c++, java, vb, php等等都可以。
至于怎么編譯自身的:
用其它語言比如c++實(shí)現(xiàn)一個(gè)[Go語言編譯器-1]
用Go語言寫一個(gè)[Go語言編譯器-2]
用這個(gè)c++實(shí)現(xiàn)的[Go語言編譯器-1]編譯第2步里面說的Go語言寫的[Go語言編譯器-2]
用第3步得到的[Go語言編譯器-2],再編譯一次第2步里面說的[Go語言編譯器-2]的源碼。
OK,現(xiàn)在有一個(gè)Go語言實(shí)現(xiàn)的編譯器了,最開始那個(gè)c++寫的編譯器沒用了,可以扔掉不要了。以后就不停的優(yōu)化使用這個(gè)Go語言實(shí)現(xiàn)的自身的編譯器就行了。
-下面腳本只匹配的 10和11 (目前是這樣的,當(dāng)前時(shí)間:20220528)
需要 Ubuntu 環(huán)境的可以參考下面鏈接
如果沒有brew,百度安裝
如果有提示,請(qǐng)按照提示操作
這一步有輸出警告,應(yīng)該不影響,輸出警告的文件:
我開始在 mac 上大環(huán)境的時(shí)候,也是對(duì)著 Linux 上的名字安裝了一部分。缺少去網(wǎng)上搜吧,下圖是我本機(jī)的,僅供參考(下面的不都是 ohos 需要的)
當(dāng)前標(biāo)題:macgo語言編譯環(huán) mac go語言環(huán)境搭建
轉(zhuǎn)載注明:http://jinyejixie.com/article14/doscoge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、動(dòng)態(tài)網(wǎng)站、、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站制作、建站公司
聲明:本網(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)