macgo語(yǔ)言編譯環(huán) mac go語(yǔ)言環(huán)境搭建

golang 怎么在mac下生成ubuntu

安裝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)庫(kù)安裝

$ 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命令來(lái)提取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

如何讓go編譯的程序后臺(tái)運(yùn)行

請(qǐng)自行查看我前面寫得GO語(yǔ)言開發(fā)環(huán)境和GO語(yǔ)言IDE編輯器的經(jīng)驗(yàn)文章

我們先寫一段GO代碼

很簡(jiǎn)單就是打印輸出一個(gè)hello world!

保存為print.go文件

然后再CMD下一路cd到print.go目錄下來(lái)

在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的效果

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ù)穆闊?。而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)境為例,來(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),如果沒(méi)有之前的技術(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)化”。

golang 跨平臺(tái)編譯

只需要指定目標(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è)過(guò)程看起來(lái)非常簡(jiǎn)單,運(yùn)行起來(lái)也非常簡(jiǎn)單,調(diào)用make release命令,并給VERSION變量賦值不同的版本號(hào)即可:

命令會(huì)編譯出不同平臺(tái)可運(yùn)行的壓縮包:

Go 是怎么使用 Go 來(lái)編譯自身的

Go是一個(gè)圖靈完備的語(yǔ)言

任何圖靈完備的語(yǔ)言理論上都可以用來(lái)編譯自身。比如c/c++, java, vb, php等等都可以。

至于怎么編譯自身的:

用其它語(yǔ)言比如c++實(shí)現(xiàn)一個(gè)[Go語(yǔ)言編譯器-1]

用Go語(yǔ)言寫一個(gè)[Go語(yǔ)言編譯器-2]

用這個(gè)c++實(shí)現(xiàn)的[Go語(yǔ)言編譯器-1]編譯第2步里面說(shuō)的Go語(yǔ)言寫的[Go語(yǔ)言編譯器-2]

用第3步得到的[Go語(yǔ)言編譯器-2],再編譯一次第2步里面說(shuō)的[Go語(yǔ)言編譯器-2]的源碼。

OK,現(xiàn)在有一個(gè)Go語(yǔ)言實(shí)現(xiàn)的編譯器了,最開始那個(gè)c++寫的編譯器沒(méi)用了,可以扔掉不要了。以后就不停的優(yōu)化使用這個(gè)Go語(yǔ)言實(shí)現(xiàn)的自身的編譯器就行了。

Mac搭建OpenHarmonyOS(開源鴻蒙系統(tǒng))編譯環(huán)境

-下面腳本只匹配的 10和11 (目前是這樣的,當(dāng)前時(shí)間:20220528)

需要 Ubuntu 環(huán)境的可以參考下面鏈接

如果沒(méi)有brew,百度安裝

如果有提示,請(qǐng)按照提示操作

這一步有輸出警告,應(yīng)該不影響,輸出警告的文件:

我開始在 mac 上大環(huán)境的時(shí)候,也是對(duì)著 Linux 上的名字安裝了一部分。缺少去網(wǎng)上搜吧,下圖是我本機(jī)的,僅供參考(下面的不都是 ohos 需要的)

當(dāng)前標(biāo)題:macgo語(yǔ)言編譯環(huán) mac go語(yǔ)言環(huán)境搭建
轉(zhuǎn)載注明:http://muchs.cn/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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司