Windows 下配置 visual studio code 开发 go 环境
必须在 1.5 以上,因为调试控件要求 go 必须在 1.5 以上。
如果有之前的版本,必须卸载,清空 go 安装目录。否则会对 cgo 功能造成影响。
添加 gopath c:/go
给 path 添加 C:/go/bin
注意:重启后环境变量才能生效。
打开 vs code 。按 ctrl+shift+p ,输入 ext ,找到 extensions:install extension
找到 go ,要下载量比较大的,是 lukehoban 开发的那个。
下载安装。
只安装 go 插件之后,功能包括
n 代码着彩色
n 代码自动完成(使用 gocode )
n 代码片段
n 快速提示信息(使用 godef )
n 跳转到定义(使用 godef )
n 搜索参考引用(使用 go-find-references )
n 文件大纲(使用 go-outline )
n 重命名(使用 gorename )
n 保存构建(使用 go build 和 go test )
n 代码格式化(使用 goreturns 或 goimports 或 gofmt )
n 调试代码(使用 delve )
但是如上所述,不安装插件的话,会缺少很多功能。因此要给 go 安装插件。官方推荐使用 git 方式获取,因此还要安装 git
官方推荐的安装方式为,命令提示行中输入
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-find-references
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
用这种方式,可以通过 git 下载他们的源代码,然后 go 自动编译,插件就安装好了。
但是在国内,由于某个伟大的墙,很多地址获取不到。
如果你能番羽墙,可以番羽墙之后继续使用这种方式。
如果你不能,请在通过第三方下载这些插件的源代码,然后放在 src 文件夹下。
例如: github.com/nsf/gocode 的代码放在 C:/go/src/github.com/nsf/gocode
然后进入这个文件夹,运行指令 :go install.
这里提供一个脚本,简化运行,另存为批处理文件即可。
cd "c:/go/src/github.com/nsf/gocode"
go install
cd "c:/go/src/github.com/rogpeppe/godef"
go install
cd "c:/go/src/github.com/golang/lint/golint"
go install
cd "c:/go/src/github.com/lukehoban/go-find-references"
go install
cd "c:/go/src/github.com/lukehoban/go-outline"
go install
cd "c:/go/src/sourcegraph.com/sqs/goreturns"
go install
cd "c:/go/src/golang.org/x/tools/cmd/gorename"
go install
cd "c:/go/src/github.com/tpng/gopkgs"
go install
cd "c:/go/src/github.com/newhook/go-symbols"
go install
pause
要使用调试功能,需要安装 delve
如上所述,这个也要自己下代码然后编译。
但是这次的问题不是翻墙,而是这货引用了 cgo 功能,所以需要 gcc 编译器。调试工具之所以需要 1.5 以上版本,也是因为 1.5 以上才支持 cgo 。
如果是 1.5 版本,在命令提示符中,输入 set GO15VENDOREXPERIMENT=1
如果你已经有 gcc ,可以尝试一下,如果没有,请根据以下教程安装 mingw
下载 mingw-w64 ( https://sourceforge.net/projects/mingw-w64/ ),然后安装选项选:
n Version: Latest available (5.3.0 at time of writing)
n Architecture: x86_64
n Threads: posix (shouldn't actually matter)
n Exception: seh (shouldn't actually matter)
n Build revision: Latest available (0 at time of writing)
这里下载比较慢,如果图快的,可以下载 x86_64-5.3.0-release-posix-seh-rt_v4-rev0.7z 。
解压缩到某个文件夹。然后配置 环境变量
mingw : C:/Program Files/mingw-w64
C_INCLUDEDE_PATH : %mingw%/include
CPLUS_INCLUDE_PATH : %mingw%/include/c++/3.4.5; %mingw%/include/c++/3.4.5/backward; %mingw%/include
LIBRARY_PATH : %mingw%/lib
给 path 添加: %mingw%/bin
然后打开命令提示符,输入 gcc -v ,出现一大堆代码,就是安装好了。
将 delve 的源代码放到 go 的 src 文件夹下面。
例如 C:/go/src/github.com/derekparker/delve ,进入这个文件夹,输入 mingw32-make install
打开 vs code ,观察一会,看看右下角是否有analysis tool missing
如果有,说明是否个插件没安装好。可以双击,然后自动安装一下,在弹出的信息框看一下就知道哪个没有装好了。
然后打开项目文件夹,最好是其中有 main 文件的那个。
最后点击左边的最后那个 debug 按钮,然后点开始调试。
因为是第一次运行,会让你选择语言,当然选 go ,然后会自动生成一个配置文件
{
"version": "0.2.0",
"configurations": [
{
"name": "main.go",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}",
"env": {},
"args": []
}
]
}
保持默认,但是将 name 改为 main.go 。然后应该就可以开始调试代码了。