在Windows中,编译器默认安装C:\Program Files\Go
配置用户环境变量
添加用户变量
GOPATH变量设置用户工作目录。如果写代码时要用到第三方库,然后使用go get xxx时,xxx就下载到这个目录。
变量 GOPATH 值 C:\Program Files\Go\bin
GOROOT变量设置Go编译器的安装位置
变量 GOROOT 值 C:\Program Files\Go
配置go的环境变量
在命令行下使用go env
命令可以看到所有关于go的环境变量。
由于go是google的产品,许多插件都是在国外,然而国内访问不了,所以要设置代理等配置
go env -w GOPROXY=https://goproxy.io,direct
go env -w GOPRIVATE=*.corp.example.com
go env -w GO111MODULE=on
安装第三方库
在命令行下使用go get -u xxx
就可以安装第三方库了
go get -u gorm.io\gorm
使用上面的命令之后就可以在C:\Program Files\Go\bin\pkg\mod目录下发现有个gorm.io的文件夹,下面有gorm文件夹
vscode解决插件安装问题
在vscode中安装了go这个插件的时候,这个插件下面还有很多小插件,这些小插件都是通过go的安装方式安装(也就是上面安装第三方库的方式),然而遇到了很多问题,如下面这个例子。
Installing golang.org/x/tools/gopls@v0.6.9 FAILED
{
“killed”: false,
“code”: 1,
“signal”: null,
“cmd”: “C:\Program Files\Go\bin\go.exe get -v golang.org/x/tools/gopls@v0.6.9”,
“stdout”: “”,
“stderr”: “go: writing stat cache: mkdir C:\Program Files\Go\bin\pkg\mod\cache\download\golang.org\x\tools\gopls: Access is denied.\ngo: downloading golang.org/x/tools/gopls v0.6.9\ngo get golang.org/x/tools/gopls@v0.6.9: mkdir C:\Program Files\Go\bin\pkg\mod\cache\download\golang.org\x\tools\gopls: Access is denied.\n”
}
1 tools failed to install.
Files\Go\bin\pkg\mod\cache\download\github.com\uudashr\gopkgs\v2@v\v2.1.2.lock: Access is denied.
这是因为我们默认安装go的位置为C:\Program Files\Go\,这个文件夹要管理员权限才能访问,解决方法:
- Windows左下角的搜索框搜索cmd
- 然后右键,使用管理员身份运行
- 然后
go get golang.org/x/tools/gopls@v0.6.9
,上面哪个安装失败就安装哪个 - 然后重启vscode,在vscode右下角有提示安装插件,点击install即可
导包失败问题
我们安装的第三方库都是在C:\Program Files\Go\bin\pkg\mod下面,而我们的写代码的工作区却不是在GOPATH下面,而在我们的工作区和GOROOT/src目录(标准库)下面都没有这个第三方库,所以报错,解决方案:
-
假设我们使用命令
go get -u gorm.io\gorm
安装了这个第三方库 -
假设你写的代码中已经正确导入第三方库,只是系统没有识别到
-
然后在vscode的工作区使用快捷键**ctrl+shift+`**打开终端,然后在里面使用命令
# 工作区取个包名,名字任意
go mod init gorm_learn
-
把项目依赖的第三方库都拷贝到工作区,该命令需要管理员权限,所以要在管理员权限下运行,且在cmd中打开工作区的目录
go mod vendor
乱码问题
有时运行程序输出乱码,因为Windows安装简体中文版就代表使用了GBK编码,而代码一般只用UTF-8编码,解决方案:
命令chcp
可以查看编码,GBK为936,UTF-8为65001,
修改编码可以直接在命令后面添加编码代表的数字,在vscode的终端中使用命令
chcp 65001
然后在终端中运行程序即可,但这只是暂时的,下次打开终端还要输入这个命令才行