Go 安装、编译、运行
2021/7/16 23:36:18
本文主要是介绍Go 安装、编译、运行,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
安装
Go语言官网下载对应版本的的安装包(https://golang.google.cn/dl/)
更改GOPATH
视频
如果想要构建一个项目,就需要将这个项目的目录添加到 GOPATH 中,多个项目之间可以使用;分隔。
如果不配置 GOPATH,即使处于同一目录,代码之间也无法通过绝对路径相互调用。
1.创建一个文件夹(存放编写的Go语言代码)
我的路径是 E:\goData
2.将环境变量里的GOPATH改为自己的路径
上图环境变量中的 %USERPROFILE%\go 是默认路径,修改为自己的路径
3.在E:\goData下创建三个文件夹
- src 目录:放置项目和库的源文件;
- pkg 目录:放置编译后生成的包/库的归档文件;
- bin 目录:放置编译后生成的可执行文件。
更多
4.将bin路径加入path环境变量中
5.查看go的环境变量
go env
项目命名
在src目录下,一般按域名,作者名,项目名,模块名的顺序来命名
源文件
命令源文件:
如果一个 Go 源文件被声明属于 main 包,并且该文件中包含 main 函数,则它就是命令源码文件。命令源文件属于程序的入口,可以通过Go语言的go run 命令运行或者通过go build 命令生成可执行文件。
库源文件:
库源文件则是指存在于某个包中的普通源文件,并且库源文件中不包含 main 函数。
不管是命令源文件还是库源文件,在同一个目录下的所有源文件,其所属包的名称必须一致的。
编辑器
下载安装 VS code
安装Go的扩展
运行第一个Go
如果此时VS Code右下角弹出提示让你安装插件,务必点 install all 进行安装。
如果文件包名报错:
go: go.mod file not found in current directory or any parent directory; see 'go help modules'
查看环境
将这里的GO111MODULE设置为auto即可
编译运行程序
-
在文件目录中使用
go build
编译代码,生成二进制可执行文件
注意:如果有多个go文件,就需要加上编译的文件名,用“,”分隔开
-
指定程序名
go build -o 程序名
-
直接运行文件
go run 文件名
编译文件,不生成可执行文件,直接运行临时文件
-
编译并安装
go install
第一步是生成结果文件(可执行文件或者 .a 包),第二步会把编译好的结果移到 $GOPATH/pkg 或者 $GOPATH/bin。
- go install 是建立在 GOPATH 上的,无法在独立的目录里使用 go install。
- GOPATH 下的 bin 目录放置的是使用 go install 生成的可执行文件,可执行文件的名称来自于编译时的包名。
- go install 输出目录始终为 GOPATH 下的 bin 目录,无法使用-o附加参数进行自定义。
- OPATH 下的 pkg 目录放置的是编译期间的中间文件。
跨平台编译
可在windows平台编译可在linux平台运行的程序
设置go的环境变量
以cmd中为例
SET CGO_ENABLED=0 //禁用CGO,1为启用 SET GOOS=linux //Linux平台为linux,Mac平台为darwin,Windows为windows SET GOARCH=amd64 // 处理器架构
go build 编译:
此时生成的learn文件,就可在linux中运行了
如果使用的是PowerShell终端,那么设置环境变量的语法为 $ENV:CGO_ENABLED=0。
在其他平台也是只需要将上面的 cgo_enabled=0,goos设置为对应的系统,最后选择对应的系统架构,即可
这篇关于Go 安装、编译、运行的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享
- 2024-12-10搭建个人博客网站之一、使用hugo创建个人博客网站