windows平台go开发环境搭建
安装go1.14.13版本
-
下载go安装包:windows平台;https://golang.google.cn/dl/
-
下一步安装即可;
-
选择一个安装路径;
-
安装过程中会自动添加GOPATH环境变量(但后面要删除并自定义)
-
查看go版本
GOROOT与GOPATH
GOROOT:
- go的安装路径,如上面安装到的d:\workstation\mysoftware\go\就是GOROOT
- 类似于JAVA_HOME
- GOROOT下的bin目录要加到环境变量,方便在任何路径执行其下命令;
GOPATH:(go1.11版本后,不强制要求gopath了,利用go module,可以将go源代码放在任何位置)
-
是将来存放写的go源代码的位置,需要自定义,
-
并在其下面创建3个子目录:pkg bin src,其中src是存放源代码的目录
-
创建GOPATH目录,以及3个子目录
- bin是自己代码编译后的二进制文件;
- pkg是编译后的归档文件;
- src是源码文件;
-
配置GOPATH到全局系统变量中;
-
将2个bin目录,配置到全局的系统变量PATH中;一个是go开发包的bin目录,包括一些编译工具等;一个是自己将来编译后的二进制程序,都需要配置到PATH中,方便执行命令时找到相应程序;
设置GOPROXY
默认的GOPROXY地址:GOPROXY=https://proxy.golang.org,direct ,国内的地址可以更换为goproxy.cn,goproxy.io
C:\Users\ten>go env -w GOPROXY=https://goproxy.cn,direct
查看go 环境变量
|
|
go开发IDE
vscode加go插件,或jetbrains的Goland,这里采用vscode加相应插件;
安装vscode
https://code.visualstudio.com/Download
找到对应操作系统的安装包,这里是windows平台的,下一步安装法直接安装即可;
安装中文扩展
安装go扩展
在扩展中,所在Chinese和go,安装扩展,然后重启vscode即可;
第一个go程序
go的项目结构
go语言开发时:
- 源代码保存在$GOPATH/src目录下;
- go build编译、go install编译加移动、go get命令后;
- go get下载的第三方源码包放在$GOPATH/src目录下;
- 产生的二进制可执行文件在$GOPATH/bin目录下;
- 生成的中间文件在$GOPATH/pkg目录下;
使用vcs如git管理项目时,只需要将$GOPATH/src目录下的源代码添加到git中管理即可;bin和pkg目录下不需要;
个人项目结构
大体的项目结构:
在src目录下,分项目,项目下分模块存放源代码;
较为流行的项目结构:
go通过引用包,组织代码文件,通常使用公司或个人的顶级域名做代码包的前缀,防止冲突;没有个人域名可以用github.com用户名充当包前缀
示例:
wang和li在github上有studygo的项目,那么其包路径分别是:
import "github.com/wang/studygo"
import "github.com/li/studygo"
下载github上的包
go get github.com/jmoiron/sqlx
下载的包会到GOPATH路径下的src的路径,
具体为:src/github.com/jmoiron/sqlx
公司/组织项目结构
文本编辑器写helloworld
-
进入到GOPATH路径的src目录下;
-
新建一个hello目录;
-
在hello目录新建一个main.go;
1 2 3 4 5 6 7
package main import "fmt" func main(){ fmt.Println("hello world") }
-
在路径框中,输入cmd,然后回车,即在该路径下打开cmd窗口;
-
go build编译刚刚的main.go程序,默认生成与文件夹同名的exe文件;
-
-o选项指定编译后的exe文件名;
-
在非当前目录编译:(其他路径执行go build + 源码目录名,go会自动在GOPATH的src目录下,找到对应的源码目录名执行编译,编译后的exe文件在当前执行命令的路径)
如下例子:会去src目录下找到hello目录,然后编译,生成的exe文件在当前d盘路径下;
vscode中写helloworld
切换vscode的默认终端
如图:打开一个终端,并在长方框选择cmd,然后重启vscode即可;
go install作用
go install分为2步:
- 先编译为可执行文件;
- 然后将可执行文件移动到GOPATH的bin目录下;
因GOPATH下的bin在环境变量中,此后,可在任意路径下执行编译后的可执行文件;
跨平台编译
默认情况下:go build编译后的可执行文件都是当前开发机的操作系统可执行的文件,一般需要在windows平台开发,编译出在linux服务器上执行的可执行文件;
-
指定目标操作系统和处理器架构;
D:\workstation\mycode\gocode\src\hello>set CGO_ENABLED=0 # 禁用cgo,使用了cgo的代码,不支持跨平台编译; D:\workstation\mycode\gocode\src\hello>SET GOOS=linux D:\workstation\mycode\gocode\src\hello>SET GOARCH=amd64
-
编译即可
D:\workstation\mycode\gocode\src\hello>go build
-
执行测试,成功;将编译后的二进制文件上传到linux系统中,加入执行权限;
跨平台编译示例:
-
mac下编译linux或windows的64位可执行程序;
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
-
linux下编译mac或windows的64位可执行程序;
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build CGO_ENALBED=0 GOOS=windows GOARCH=amd64 go build
-
windows下编译mac的64位可执行程序;
SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build
vscode再配置
配置GOPROXY
在vscode的cmd的终端中,输入一下命令,设置GOPROXY
go env -w GOPROXY=https://goproxy.cn,direct
安装go开发工具包
1、windows系统按ctrl shift p,弹出窗口,并在其中搜索:go:install/update tools一项;
2、点击之后,在弹出的如下列表中,选中全部,点击确定,开始安装工具包;
3、安装成功的提示:
配置vscode自动保存
文件-》首选项-》设置,选中afterdelay
配置vscode代码片段快捷键
windows系统按ctrl shift p,弹出创建输入snippets
然后在弹出的列表中,选择go点击,弹出的go.json配置文件,按需将需要的快捷键定义其中,保存即可;
2个快捷键配置示例:
{
// Place your snippets for go here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"println":{
"prefix": "pln",
"body":"fmt.Println($0)",
"description": "println"
},
"printf":{
"prefix": "plf",
"body": "fmt.Printf(\"$0\")",
"description": "printf"
}
}
测试补全快捷键:
新建一个main.go文件,pln和plf会自动补全为完全的语句;