Vscode配置Go開發調試環境
Go安裝
- Go官網下載Go,然后按照流程安裝,記錄下安裝的路徑,后面需要更改環境變量配置GOROOT,例如我這里安裝的路徑是:
Windows
D:\Develop\Go
Linux(基於ArchLinux):
/usr/lib/go
安裝完成后使用命令查看是否安裝完成,顯示安裝go版本號:
go version
安裝完成之后建立一個Go項目的存儲路徑文件夾:
Windows下創建我的Go項目路徑:
E:\Code\Go_WorkSpace\
Linux下創建我的Go項目路徑:
sudo mkdir /home/Cat/Code/Go_WorkSpace
2.Go環境配置
使用 go env
可以查看當前go的環境配置信息
1.現在需要設置Go的環境變量信息:
Windows下:
(1)配置GO111MODULE:
打開“系統高級設置-環境變量-用戶變量”,添加用戶變量:
變量名:GO111MODULE
,變量值:no
;
(2)打開cmd設置GOROOT,GOPATH,GOPROXY
go env -w GOROOT=D:\DevSoftware\Go
go env -w GOPATH=E:\Code\Go_WorkSpace\
go env -w GOPROXY="https://goproxy.cn,direct"
然后使用go env
命令查看當前環境是否與設置的相同。
Linux下:
sudo chmod -R 777 /home/Cat/Code/Go_WorkSpace
sudo chmod -R 777 /usr/lib/go
export GOROOT=/usr/lib/go
export GOBIN=/usr/lib/go/bin
export PATH=$PATH:$GOBIN
export GOPATH=/home/Cat/Code/Go_WorkSpace
go env -w GOPROXY="https://goproxy.cn,direct"
然后使用go env
命令查看當前環境是否與設置的相同。
3.運行Vs Code
(1)運行Vs Code后,在插件中搜索插件“go”並進行安裝;
(2)安裝完成后使用Vs Code打開一個文件夾,然后創建一個新的文件,輸入:
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
然后保存為go文件,我這里命名為:"hello.go",按F5或者點擊運行,此時會有提示需要安裝Go相關插件,可能需要kxsw,或者其它方式,網上自行查找。同時在左側會提示創建一個"launch.json"的文件,點擊創建會自動生成,需要把自己的環境變量("env")信息添加上去,下面是我的環境變量配置:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}",
"env": {
"GOPATH": "E:\\Code\\Go_WorkSpace",
"GOROOT": "D:\\DevSoftware\\Go"
},
"args": [],
//"showLog": true
}
]
}
然后在控制台中進入項目源碼上級路徑(完整路徑"E:Code/Go_WorkSpace/src/lion/hello.go"):
E:
cd Code/Go_WorkSpace/src
go mod init lion
此時在src目錄下(與lion目錄同級)會有一個go.mod文件生成。
然后打開hello.go文件,點擊運行或者F5,程序正常運行(Linux待補,其實類似)。
Starting: D:\Develop\Go\bin\dlv-dap.exe dap --check-go-version=false --listen=127.0.0.1:50576 from e:\Code\Go_WorkSpace\src\lion\ttl
DAP server listening at: 127.0.0.1:50576
Hello, 世界
Process 8208 has exited with status 0
Detaching
dlv dap (3972) exited with code: 0