【Go】windows下的Go安装与配置,并运行第一个Go程序
安装环境:windows10 64位
安装版本:go1.16 windows/amd64
一、安装配置步骤
1.到官方网址下载安装包
https://golang.google.cn/dl/
默认情况下 .msi 文件会安装在 c:\Go 目录下。可自行配置安装位置
2.配置环境变量
环境变量PATH作用:Windows和DOS操作系统中的path环境变量,当系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找
- 分别添加GOPATH与GOROOT两条系统变量
$GOROOT: 表示 Go 在你的电脑上的安装位置
$GOPATH: Go语言工作目录。默认采用和 $GOROOT 一样的值,但从 Go 1.1 版本开始,你必须修改为其它路径。
(Go1.1.1引入了moudle模块化概念,在此之前规定Go项目代码需放入$GOPATH的src目录下。之后的版本推荐启用Go mod模式构建项目,可在磁盘的任何位置新建一个项目)
- 在PATH中添加对应环境变量
%GOROOT%\bin
3.配置Go的环境(适用于Go version >= 1.13)
在命令行输入:go env 可以查看关于Go的所有环境参数
常情况下需要配置的环境参数只有两个:GOPROXY和GO111MODULE
GO111MODULE:控制是否开启Go Modules模式(推荐开启)
GOPROXY:GOPROXY控制Go Modules下载依赖包的来源(公共GOPROXY是一个集中式的存储库,全球各地的Golang开发者都可以使用。它缓存了大量开源的Go模块)
对于GO111MODULE的详细说明,可以点击查看文章:Go 模块解惑:到处都是 GO111MODULE ,这到底什么?
在命令行输入如下两句命令:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct // 可选,阿里云镜像
二、运行第一个Go程序
1.使用系统编辑器方式
-
在任意工作路径下新建项目文件夹demo
-
用命令行工具进入demo文件夹路径
-
在命令行中输入初始化Go项目命令
go mod init demo
其中demo为项目名,运行命令后demo路径下会生成一个go.mod文件,用于记录项目信息
- 新建src\main文件夹,在main文件夹下新建main.go文件
打开main.go,编辑并保存内容如下:
package main // 包名,同一个包的多个go文件组成一个程序单元。路径名需要与包名相同
import "fmt" // 引入依赖
func main(){ // 每一个go项目都必须有一个main方法作为程序入口
fmt.Printf("Hello World")
}
5)在命令行中进入main路径,并输入编译并运行代码:
go run main.go
可以看到如下结果:
2.使用集成开发环境方式
我使用JetBrains公司的收费软件GoLand作为Go学习开发环境
官网下载地址:https://www.jetbrains.com/go/
GoLand支持安装中文插件
- 新建一个Go模块项目。注意是Go模块项目,不是Go项目 (go1.11后使用官方推荐的模块化编程方案)
GOROOT选择Go的安装位置
- 在项目路径下新建src\main文件夹与main.go文件,并输入代码
package main // 包名,同一个包的多个go文件组成一个程序单元。路径名需要与包名相同
import "fmt" // 引入依赖
func main(){ // 每一个go项目都必须有一个main方法作为程序入口
fmt.Printf("Hello World")
}
-
配置构建程序,运行种类选择目录
-
运行main方法
三、常见问题
1.每一个可执行项目,必须有一个或多个 main 包
如果项目中没有 main 包,那么在编译项目时,不会出现错误,如果在项目中使用 go run 来编译并启动项目,则会报错,错误信息是:
go run: cannot run non-main package
2.一个 main 包中,有且只能有一个 main 函数。如果不存在main函数,则会报未声明main函数的错误:
runtime.main_main·f: function main is undeclared in the main package
3.之前的Go环境配置中配置了:GO111MODULE=on 即开启模块化构建
如果没有使用模块化模式构建项目,则会报错:
go: cannot find main module; see ‘go help modules’
有关Go模块化编程的具体描述:Go语言模块化编程