Mac上Go環(huán)境和VS Code的正確安裝與配置方法
Go語(yǔ)言是Google新推出的結(jié)合了動(dòng)態(tài)語(yǔ)言和靜態(tài)語(yǔ)言?xún)?yōu)勢(shì)的一個(gè)新興的語(yǔ)言。下面介紹一下如何在Mac系統(tǒng)下安裝和使用這個(gè)語(yǔ)言。
1.下載SDK
到 https://studygolang.com/dl 下載對(duì)應(yīng)的SDK(需要翻墻)
Mac版本如下:
1.1 安裝版:go1.8.darwin-arm64.pkg
下載完成之后,直接雙擊打開(kāi)安裝即可
1.2 壓縮版:go1.8.darwin-arm64.tar
下載完成后需要解壓,然后自己移動(dòng)到要存放的路徑下,并且配置環(huán)境變量等信息。
2.安裝Go環(huán)境
選擇1.8版本的安裝版,雙擊安裝。安裝完成后,打開(kāi)terminal ,輸入如下命令,查看安裝的版本:
go version
3.配置環(huán)境變量
打開(kāi)terminal
3.1 cd ~進(jìn)入用戶(hù)主目錄,
3.2 ls -all查看是否存在.bash_profile
3.3 vim .bash_profile打開(kāi)并編輯該文件
3.4 根據(jù)自己的實(shí)際情況配置路徑,我配置到了外置硬盤(pán)中
export GOPATH=/Volumes/gnhxsk/mygo export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN
GOPATH:日常開(kāi)發(fā)的根目錄,Go從1.1版本到1.7版本必須設(shè)置這個(gè)變量,而且不能和Go的安裝目錄一樣,這個(gè)目錄用來(lái)存放Go源碼,Go的可運(yùn)行文件,以及相應(yīng)的編譯之后的包文件。所以,這個(gè)目錄下面有三個(gè)子目錄:src、bin、pkg
src 存放源代碼(比如:.go .c .h .s等)
pkg 編譯后生成的文件(比如:.a)
bin 編譯后生成的可執(zhí)行文件(為了方便,可以把此目錄加入到$PATH變量中,
如果有多個(gè)gopath,那么使用${GOPATH//://bin:}/bin
)
GOBIN:是GOPATH下的bin目錄
PATH:環(huán)境變量。需要gobin目錄加入到path路徑下,生成可執(zhí)行文件就可以直接運(yùn)行了。
3.5 退出vim,執(zhí)行下面的命令完成對(duì)golang環(huán)境變量的配置。
source ~/.bash_profile
3.6 go env查看配置后的效果
4.Hellow World
src目錄是開(kāi)發(fā)程序的主要目錄,所有的源碼是放在這個(gè)目錄下面。
例如:$GOPATH/src/mymath表示mymath這個(gè)應(yīng)用包或者可執(zhí)行應(yīng)用,這個(gè)是根據(jù)package是main還是其他來(lái)決定,main的話(huà)是可執(zhí)行應(yīng)用,其他的話(huà)就是應(yīng)用包.
4.1 執(zhí)行如下代碼,在src文件夾下創(chuàng)建mymath文件夾
cd $GOPATH/src mkdir mymath
4.2 新建文件sqrt.go
package mymath func Sqrt(x float64) float64{ z := 0.0 for i := 0; i < 1000; i ++{ z -= (z * z - x) / (2 * x) } return z }
4.3 編譯應(yīng)用
4.3.1 進(jìn)入對(duì)應(yīng)的應(yīng)用包目錄。然后執(zhí)行g(shù)o install,安裝
4.3.2 在任意目錄下執(zhí)行g(shù)o install mymath,安裝
安裝完成之后,可以進(jìn)入如下目錄,查看應(yīng)用包
cd $GOPATH/pkg/${GOOS}_${GOARCH} ls mymath.a
4.4 調(diào)用應(yīng)用包
4.4.1 新建應(yīng)用包
cd $GOPATH/src mkdir mathapp cd mathapp vim mian.go
main.go源碼:
package main import( "mymath" "fmt" ) func main(){ fmt.Printf("Hello,world. Sqrt(2) = %v\n",mymath.Sqrt(2)) }
4.4.2 編譯程序
進(jìn)入該應(yīng)用目錄,然后執(zhí)行g(shù)o build,那么在該目錄下面會(huì)生成一個(gè)mathapp的可執(zhí)行文件
./mathapp
輸出如下內(nèi)容
Hello,world. Sqrt(2) = 1.414213562373095
4.4.3 安裝該應(yīng)用
進(jìn)入該目錄執(zhí)行g(shù)o install,那么在$GOPATH/bin下增加了一個(gè)可執(zhí)行文件mathapp,在terminal中輸入如下命令可以執(zhí)行
mathapp
也可以輸出如下內(nèi)容
Hello,world. Sqrt(2) = 1.414213562373095
5.安裝VS Code
5.1 到https://code.visualstudio.com下載Visual Studio Code,直接使用
5.2 安裝Go插件
5.2.1 點(diǎn)擊右邊的Extensions圖標(biāo),搜索Go插件,選擇Go進(jìn)行安裝,安裝之后,系統(tǒng)會(huì)提示重啟Visual Studio Code
5.2.2 可以打開(kāi)自動(dòng)保存功能。開(kāi)啟方法:選擇菜單File,勾選
5.2.3 用戶(hù)設(shè)置
在頂部菜單選擇Code->首選項(xiàng)->設(shè)置
{ "files.autoSave": "off", "go.buildOnSave": true, "go.lintOnSave": true, "go.vetOnSave": true, "go.buildFlags": [], "go.lintFlags": [], "go.vetFlags": [], "go.coverOnSave": false, "go.useCodeSnippetsOnFunctionSuggest": false, "go.formatOnSave": true, "go.formatTool": "goreturns", "go.goroot": "/usr/local/go",// 你的Goroot "go.gopath": "/Volumes/gnhxsk/mygo",// 你的Gopath }
5.2.4 安裝依賴(lài)包支持
* 自動(dòng)安裝:選擇一個(gè).go文件拖進(jìn)入VS Code,然后VS Code會(huì)提示你安裝依賴(lài)包,選擇install all即可
* 手動(dòng)安裝:打開(kāi)terminal,執(zhí)行以下命令
go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -v github.com/zmb3/gogetdoc go get -u -v github.com/golang/lint/golint go get -u -v github.com/lukehoban/go-outline go get -u -v sourcegraph.com/sqs/goreturns go get -u -v golang.org/x/tools/cmd/gorename go get -u -v github.com/tpng/gopkgs go get -u -v github.com/newhook/go-symbols go get -u -v golang.org/x/tools/cmd/guru go get -u -v github.com/cweill/gotests/...
5.2.5 Visual Studio Code支持Go語(yǔ)言調(diào)試
執(zhí)行以下命令:
go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv brew install go-delve/delve/delve go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
修改“dlv-cert”證書(shū)
1.打開(kāi)“鑰匙串訪(fǎng)問(wèn)”
2.打開(kāi)菜單->鑰匙串訪(fǎng)問(wèn)->證書(shū)助理->創(chuàng)建證書(shū)
3.名稱(chēng):dIv 身份類(lèi)型:自簽名證書(shū) 證書(shū)類(lèi)型:代碼簽名 并選擇“讓我覆蓋這些默認(rèn)值”
4.單擊“繼續(xù)”,有限期(天數(shù)):365,可以自己修改,3650
5.一直繼續(xù),直到看到“指定用于該證書(shū)的位置”鑰匙串,選擇“系統(tǒng)”并單擊“創(chuàng)建”按鈕
6.重啟Finder,再打開(kāi)“鑰匙串訪(fǎng)問(wèn)”,選擇“系統(tǒng)”,就會(huì)看到創(chuàng)建好的“dlv-cert”證書(shū)
7.右鍵”dlv-cert”證書(shū),選擇“顯示簡(jiǎn)介->信任->代碼簽名”修改為:始終信任
8.打開(kāi)terminal,進(jìn)入到之前安裝好的$GOPATH/src目錄下的dlv源碼文件目錄:github.com/derekparker/delve
9.輸入如下命令就可以重新編譯出一個(gè)帶代碼簽名的dlv執(zhí)行程序
GO15VENDOREXPERIMENT=1 CERT=dlv-cert make install
可能會(huì)遇到的問(wèn)題
The execution file “./dlv -h” always return >> killed:9
stackoverflow解決方式:
I need to do this step below
brew install go-delve/delve/delve
and go to $GOPATH/src/github.com/derekparker
git clone https://github.com/derekparker/delve.git
CERT=dlv-cert make install
(remove old dlv > brew install delve > codesign dlv)not just run
go get github.com/derekparker/delve/cmd/dlvand it works now.
重啟Visual Studio Code,就可以完美使用了。推薦插件:vscode-icons
上面即是在Mac上Go環(huán)境和VS Code的正確安裝與配置方法,如果遇到安裝或配置問(wèn)題,可以聯(lián)系我們
相關(guān)文章
Golang RSA生成密鑰、加密、解密、簽名與驗(yàn)簽的實(shí)現(xiàn)
RSA 是最常用的非對(duì)稱(chēng)加密算法,本文主要介紹了Golang RSA生成密鑰、加密、解密、簽名與驗(yàn)簽的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11Golang實(shí)現(xiàn)for循環(huán)運(yùn)行超時(shí)后自動(dòng)退出的方法
for循環(huán)對(duì)大家來(lái)說(shuō)應(yīng)該都不陌生,對(duì)于golang來(lái)說(shuō)更是必不可少,所以下面這篇文章就來(lái)給大家介紹了關(guān)于Golang如何實(shí)現(xiàn)for循環(huán)運(yùn)行一段時(shí)間超時(shí)后自動(dòng)退出的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11詳解Golang函數(shù)式選項(xiàng)(Functional?Options)模式
什么是函數(shù)式選項(xiàng)模式,為什么要這么寫(xiě),這個(gè)編程模式解決了什么問(wèn)題呢?其實(shí)就是為了解決動(dòng)態(tài)靈活的配置不同的參數(shù)的問(wèn)題。下面通過(guò)本文給大家介紹Golang函數(shù)式選項(xiàng)(Functional?Options)模式的問(wèn)題,感興趣的朋友一起看看吧2021-12-12Golang實(shí)現(xiàn)smtp郵件發(fā)送的示例代碼
這篇文章主要為大家詳細(xì)介紹了Golang實(shí)現(xiàn)smtp郵件發(fā)送的相關(guān)知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Golang?IOT中的數(shù)據(jù)序列化與解析過(guò)程
這篇文章主要介紹了Golang?IOT中的數(shù)據(jù)序列化與解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05golang分層測(cè)試之http接口測(cè)試入門(mén)教程
這篇文章主要介紹了golang分層測(cè)試之http接口測(cè)試入門(mén)教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12golang 如何用反射reflect操作結(jié)構(gòu)體
這篇文章主要介紹了golang 用反射reflect操作結(jié)構(gòu)體的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04go語(yǔ)言實(shí)現(xiàn)mqtt協(xié)議的實(shí)踐
MQTT是一個(gè)基于客戶(hù)端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。本文主要介紹了go語(yǔ)言實(shí)現(xiàn)mqtt協(xié)議的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09