在Windows中,编译器默认安装C:Program FilesGo
配置用户环境变量添加用户变量
GOPATH变量设置用户工作目录。如果写代码时要用到第三方库,然后使用go get xxx时,xxx就下载到这个目录。
变量 GOPATH 值 C:Program FilesGobin
GOROOT变量设置Go编译器的安装位置
变量 GOROOT 值 C:Program FilesGo配置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.iogorm
使用上面的命令之后就可以在C:Program FilesGobinpkgmod目录下发现有个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 FilesGobingo.exe get -v golang.org/x/tools/gopls@v0.6.9”,
“stdout”: “”,
“stderr”: “go: writing stat cache: mkdir C:Program FilesGobinpkgmodcachedownloadgolang.orgxtoolsgopls: Access is denied.ngo: downloading golang.org/x/tools/gopls v0.6.9ngo get golang.org/x/tools/gopls@v0.6.9: mkdir C:Program FilesGobinpkgmodcachedownloadgolang.orgxtoolsgopls: Access is denied.n”
}
1 tools failed to install.
FilesGobinpkgmodcachedownloadgithub.comuudashrgopkgsv2@vv2.1.2.lock: Access is denied.
这是因为我们默认安装go的位置为C:Program FilesGo,这个文件夹要管理员权限才能访问,解决方法:
- Windows左下角的搜索框搜索cmd
- 然后右键,使用管理员身份运行
- 然后go get golang.org/x/tools/gopls@v0.6.9,上面哪个安装失败就安装哪个
- 然后重启vscode,在vscode右下角有提示安装插件,点击install即可
我们安装的第三方库都是在C:Program FilesGobinpkgmod下面,而我们的写代码的工作区却不是在GOPATH下面,而在我们的工作区和GOROOT/src目录(标准库)下面都没有这个第三方库,所以报错,解决方案:
-
假设我们使用命令go get -u gorm.iogorm安装了这个第三方库
-
假设你写的代码中已经正确导入第三方库,只是系统没有识别到
-
然后在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
然后在终端中运行程序即可,但这只是暂时的,下次打开终端还要输入这个命令才行



