Golang的环境搭建与第一个程序
下载
Golang 下载:下载地址
配置环境变量
- GOROOT: GO 的安装根路径,当安装好 golang 之后默认就给配置好了,默认应该是在
C:\Program Files\Go
。可以将GOROOT
理解为JAVA_HOME
。 - GOPATH:项目的工作路径,从 Go 1.8 版本开始,Go 开发包在安装完成后,将
GOPATH
赋予了一个默认的目录:$HOME/go
,但如果需要,可以为所有项目设置其他位置。 - Path:添加 GO 的/bin 路径,
%GOROOT%\bin
目录结构
一个 Go 语言项目的工作目录一般包含以下三个子目录:
- src 目录:放置项目和库的源文件
- pkg 目录:包含可用库的已编译版本。 编译器可以链接这些库,而无需重新编译它们。
- bin 目录:放置编译后生成的可执行文件
第一个 Go 程序
我在src
目录下创建的目录格式:src\go_code\day01\main\hello.go
1 | // 声明 main 包,表明当前是一个可执行程序 |
编译并执行应用程序:在src\go_code\day01\main
目录下执行:go run hello.go
编译程序:在src\go_code\day01\main
目录下执行:go build hello.go
区别
go build
命令编译程序,如果没有错误,它将生成可在不使用 Go 的情况下运行的二进制可执行文件。 通常使用此命令生成应用程序二进制文件,用于将应用程序部署到不同的环境。
go run
命令编译并执行应用程序,而不生成二进制文件。
编译得到的可执行文件会保存在执行编译命令的当前目录下
问题解决
如果直接执行go build
会报错,cannot find main module; see 'go help modules'
go 默认管理依赖的方式:go module 模式,即依赖一个 go.mod 文件,其中描述了项目依赖的包和版本(类似于 maven 的 pom.xml)
解决,初始化一个模块
我们还可以使用-o 参数来指定编译后可执行文件的名字。
1 | $ go build -o hello |
go 使用一个环境变量GO111MODULE
来决定使用Go Modules
还是GOPATH
,该变量有三个值
可以通过 go env查看
,go env -w
设置
1 | $ go env -w GO111MODULE=auto |
值 | 含义 |
---|---|
GO111MODULE = on | 不管在 GOPATH 中还是外,都强制使用 go.mod |
GO111MODULE = off | 强制 Go 表现出 GOPATH 方式,即使在 GOPATH 之外 |
GO111MODULE = auto | 当有 go.mod 或者在 GOPATH 之外,GO111MODULE = on 当处于 GOPATH 内且没有 go.mod 文件时,GO111MODULE = off |
所以,也可以设置GO111MODULE = auto
,此时再次执行go build
,可以正常使用了
本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ShiGuang
评论