Windows下 VSCode 配置 Go 开发环境
写这篇文章的目的,是为了把这些步骤记录下来。以备不时
包含哪些内容
- 如何在 Visual Studio Code 中进行 Go 调试
- 编写并使用自己的 Go 语言包
- 在Linux上安装 Go,Go install
Go安装以及配置
- Go语言环境 Go语言环境下载 提醒:如果对代码有洁癖的,请不要安装在 C 盘
- 安装后增加环境变量
- path=D:\Go\bin //这个是安装目录
- GOPROXY=https://goproxy.io,direct //代理 方便下载 Go 调试工具
- GO111MODULE=on
- GOPATH=**** //这个系统变量是安装后新增的,无需添加
- cmd 输入 go env 检查相应的环境变量
- 配置调试工具
-
cmd >> go get -v golang.org/x/tools/gopls //会下载在 GoPath 目录下
-
cmd >> go get -v github.com/go-delve/delve/cmd/dlv
-
GOPATH 目录下增加了一个 bin 目录 和 pkg 目录
-
新建一个go项目
1.在 GoPath 下新建文件夹 goproj
2.在 goproj 下新建一个 main.go 包含 main 函数
VSCode安装以及配置
1.Visual Stdio Code Visual Studio Code 下载
2.安装 Go 扩展
3.使用 vscode 打开刚刚创建的 goproj 文件夹
4.配置 launch.json 文件
{
"name": "Go Debug",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "main.go",
"env": {
"GOPATH": "D:/IDE/vsc-code/GoCode", //这里填 环境变量 GOPATH,vscode调试会用到
"GOROOT": "D:/Go" //这里填 Go 的安装目录
}
//下面这个是附加到进程调试
{
"name": "Attach to Process",
"type": "go",
"request": "attach",
"mode": "remote", // "local"
"port": 2345, //默认就是 2345 爱改不改
"host": "192.168.234.128",
"processId": 4532 //注意这里进程id 是远程 机器上 dlv 进程的id
}
}
编写 Go,调试 Go,使用自定义 Go 包
编写自定义包,需要将自己的包文件夹放在 Go安装目录/src 下。这里定义了一个 mytest 包,包中包含两个 go 文件,mytest1.go 和 mytest2.go 文件。文件编写后依次执行以下命令
go build mytest
go install mytest
成功后 D:\Go\pkg\windows_amd64\mytest.a 文件
1.项目启动文件 main.go GoPath/main.go
package main import ( "fmt" "mytest" //引入自己的包 ) func main() { println("hello go!") mytest.Functest() //使用自定义包中函数 fmt.Printf("\n") mytest.Functest2() //使用自定义包中函数 }
2.自定义包 mytest
mytest1.go Go安装目录/mytest/mytest1.go
package mytest //自定义包名 import "fmt" func Functest() { fmt.Printf("调用mytest1.go funtest") }
mytest2.go Go安装目录/mytest/mytest2go
package mytest //自定义包名 import "fmt" func Functest2() { fmt.Printf("调用mytest2.go funtest") }
必要说明:这两个go文件,都在 包 mytest 之下,都属于mytest包
Go build **pkg is not in std / goroot
解决方法1
把你的 pkg 包放到安装目录 GOROOT/src 下面去
解决方法2
把你的项目做成一个模块,具体可以参考 How to Write Go Code - The Go Programming Language
Linux上build Go 项目
go mod init goproj //初始化一个模块,启动文件就是 goproj.go 其中包含 main 函数cd cd mytest //my test 在 goproj 目录下面,这里不需要在初始化模块了
go build //mytest 只是个package build 内容在 go build cache 文件,可以不 build
package main import ( "fmt" "goproj/mytest" // 引入 mytest package "strconv" "time" )
go install goproj //会生成一个 goproj 可执行文件,位于 GOBIN 目录下,这个是一个 module build 不生效,
go install goproj -gcflags "all=-N -l" //用于调试的 版本
具体可以参考 How to Write Go Code - The Go Programming Language
注:因为在 Linux 我把项目弄成一个module了,所以 main.go 相应改成了包名 goproj.go
远程调试
众所周知服务器开发一般是在 Linux 下,所以这里配置远程Linux附加调试
export GOPROXY=https://goproxy.io,direct //代理 方便下载 Go 调试工具
安装调试工具
go install github.com/go-delve/delve/cmd/dlv@latest
dlv attach <pid> --listen=:2345 --headless --api-version=2 --log //dlv附加
之后就是 启动 vs code 进行调试了,vscode 代码按理来说需要和 远程机器上的一致。要是不一致,我也不知道会怎么样咯。
最后看看远程附加调试效果
Linux这边
VScode这边
本文来自博客园,作者:狂野先森,转载请注明原文链接:https://www.cnblogs.com/geeon/p/17759627.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!