Windows下配置visual studio code开发go环境

1.        安装vs code

下载安装即可,然后设置autosave

很多材料说在file菜单就可以设置,但是我没找到。

我是在file->preference->user setting里,用ctrl+F找到的"files.autoSave": "off",

然后粘贴到右边,粘贴为"files.autoSave": "on",

2.        安装go

我是装在c:\go文件夹下。

必须在1.5以上,因为调试控件要求go必须在1.5以上。

如果有之前的版本,必须卸载,清空go安装目录。否则会对cgo功能造成影响。具体来说,就是delve编译过不去。

3.        配置go环境变量

添加gopath:c:\go

给path添加 C:\go\bin

注意:重启后环境变量才能生效。

4.        为vs code安装go开发环境

打开vs code。按ctrl+shift+p,输入ext,找到extensions:install extension

找到go,要下载量比较大的,是lukehoban开发的那个。

下载安装。

然后按照第一节中提到的方法,给file->preference->user setting添加一些配置项:

 

    "go.buildOnSave": true,

    "go.lintOnSave": true,

    "go.vetOnSave": true,

    "go.buildFlags": [],

    "go.lintFlags": [],

    "go.vetFlags": [],

    "go.useCodeSnippetsOnFunctionSuggest": false,

    "go.formatOnSave": false,

    "go.formatTool": "goreturns",



安装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安装插件。官方推荐使用go get指令获取,因此还要安装git

5.        安装git

一路双击,但是注意,有一步是让你选git是只能在内部的命令行中用,还是可以在windows的命令提示符用,当然选在windows的命令提示符那个,我记得是三个选项中的第二个。如果不选的话,过后要自己设置环境变量。

装完之后再重启,打开命令提示符,输入git version,看是否安装成功。

然后就可以用go get指令了。

6.        给go安装插件

官方推荐的安装方式为,命令提示行中输入

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

 如果安装过不去,可能是因为缺少依赖的库造成的(呵呵哒),也有可能是版本不匹配,推荐还是用git+代理的方式。起码保证下回来的是最新的。

7.        安装调试功能

要使用调试功能,需要安装delve

如上所述,这个也要自己下代码然后编译。

但是这次的问题不是FQ,而是这货引用了cgo功能,所以需要gcc编译器。调试工具之所以需要1.5以上版本,也是因为1.5以上才支持cgo。

如果是1.5版本,在命令提示符中,输入set GO15VENDOREXPERIMENT=1,打开这个功能。如果是1.6以上,默认已经设置这个标记位了。

如果你已经有gcc,可以尝试一下能否编译,如果没有,请根据以下教程安装mingw

8.        安装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,出现一大堆代码,就是安装好了。

 

9.        编译delve

首先安装另外一个组件,打开命令提示符,输入

go get -v -u github.com/peterh/liner

测试了一下,这个不需要FQ,直接就可以下载。

然后下载delve的代码,地址

 

github.com/derekparker/delve/cmd/dlv

将delve的源代码放到go的src文件夹下面,例如C:\go\src\github.com\derekparker\delve。

最后进入这个文件夹,输入mingw32-make install

10.    打开项目

打开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。然后应该就可以开始调试代码了。

posted on 2016-10-13 18:28  影踪派  阅读(287)  评论(0)    收藏  举报

导航