中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

M1 Mac怎么使用原生Go與開發環境

發布時間:2021-12-31 11:52:25 來源:億速云 閱讀:177 作者:柒染 欄目:云計算

本篇文章為大家展示了M1 Mac怎么使用原生Go與開發環境,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Go 1.16版將正式支持Apple Silicon M1芯片,即arm64架構的Mac操作系統,目前go 1.16版版本為beta1,只是會在這個基礎上再修修bug,改進文檔等。

目前有兩種方式搶先體驗Go1.16:

方式一:編譯源代碼   

mac上需要確保安裝有 rosetta 2(https://support.apple.com/en-us/HT211861)。

安裝Go1.15,從1.4開發Go的編譯器需要Go本身來編譯Go,那么為了編譯1.16,我們首先需要amd64版本的Go1.15。

當然Mac上還需要安裝一些工具鏈:當然如果MacOS在升級更新后會出現其它問題比如:xcrun: error: invalid active developer path, missing xcrun

我們同樣使用下面命令可以解決:

xcode-select --installsudo xcode-select -switch /
mkdir $HOME/gorootscd $HOME/gorootswget https://dl.google.com/go/go1.15.6.darwin-amd64.tar.gztar xzf go1.15.6.darwin-amd64.tar.gz

獲取Go的最新源代碼,clone出來之后目前master分支便是 1.16 的預發布分支。

cd $HOME/gorootsgit clone https://go.googlesource.com/go gosource

要編譯go的話,需要先預編譯 bootstrap 響應的工具鏈,這個工具鏈本身也是需要是arm64版,不然最后make出來的還會是x86。

cd $HOME/goroots/gosource/srcarch --x86_64 env GOROOT_BOOTSTRAP=$HOME/goroots/go GODEBUG=asyncpreemptoff=1 GOOS=darwin GOARCH=arm64 ./bootstrap.bash

注意上面的編譯環境變量參數中有 GODEBUG=asyncpreemptoff=1 ,這是因為我們的go 1.15是amd64版,直接在m1 mac中運行時需要依賴 rosetta 2,而目前似乎rosetta 2對于go的協程異步搶占還有bug,因此需要關閉;否則編譯時會死鎖并出現錯誤:

rosetta error: ulock_wait failure: 105

完成這步后,我們便可在 $HOME/goroots/go-darwin-arm64-bootstrap 路徑下獲得編譯完整go的arm64工具鏈。

最后一步編譯arm64原生go

cd $HOME/goroots/gosource/srcarch --arm64e env GOROOT_BOOTSTRAP=$HOME/goroots/go-darwin-arm64-bootstrap ./make.bash
export  PATH="$PATH:$HOME/goroots/gosource/bin/"

之后就可以正常使用了。

M1 Mac怎么使用原生Go與開發環境

方式二:下載Go1.16beta1

https://golang.org/dl/go1.16beta1.darwin-arm64.pkg

下載安裝后可以直接使用:

go versiongo version go1.16beta1 darwin/arm64

開發工具

目前Goland正式版已經開發支持Mac M1的開發。

M1 Mac怎么使用原生Go與開發環境

但是目前Goland的工具鏈還不能正常的進行DEBUG

解決方法:

git clone https://github.com/oxisto/delve.gitgit checkout -b darwin-arm64-lldbcd delve/cmd/dlv/ go build go installcd $GOPATHcp dlv/Applications/GoLand.app/Contents/plugins/go/lib/dlv/Mac/dlv

將delve進行arm64的編譯后,覆蓋Goland上的版本,就可以使用了。

M1 Mac怎么使用原生Go與開發環境

ok ,如上我們終于又可以在M1上編寫和調試我們的框架代碼了 

上述內容就是M1 Mac怎么使用原生Go與開發環境,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

织金县| 安西县| 齐河县| 玛多县| 湘潭市| 洪江市| 德令哈市| 临朐县| 宁陕县| 宜兰县| 涞源县| 鄂伦春自治旗| 安徽省| 原平市| 武隆县| 霍邱县| 错那县| 巢湖市| 延庆县| 启东市| 托克托县| 佛坪县| 滁州市| 施甸县| 东宁县| 开平市| 博白县| 长白| 苏尼特右旗| 田东县| 县级市| 贵南县| 子长县| 沙洋县| 连云港市| 固阳县| 沧源| 太保市| 天门市| 江阴市| 汉阴县|