当前位置:网站首页>golang安装和基础配置
golang安装和基础配置
2022-08-04 17:45:00 【whynogome】
环境变量
使用命令:go env 可查看所有环境变量
常用的主要有以下环境变量
- GO111MODULE :是否开启mod模式,1.12之后默认为开启
- GOROOT:go的安装目录
- GOPATH:go的工作目录
- GOPROXY:go依赖下载代理地址。默认镜像是国外地址,速度太慢的话可修改为为国内镜像,如:https://goproxy.cn
- GOSUMDB:mod模式下载包时,gosum的验证地址,不设置会报错,可设置为:sum.golang.google.cn
使用命令:go env -w GOSUMDB=sum.golang.google.cn 修改环境变量
常用命令
- go run 文件名 :执行mian文件,不生成任何文件
- go build :编译并生成可执行文件。
若当前目录下有main文件,则在当前目录下生成可执行文件,否则不生成任何文件。go build -o 可执行文件名 可指定生成的文件名和位置 - go install:编译并生成可文件,使用该命令必须配置GOPATH。
若当前目录下有main文件,会在GOPATH/bin目录下生成可执行文件。若当前目录没有main文件,则把目录下的包文件编译为.a文件,并保存到$GOPATH/pkg目录下。 - go get :获取远程依赖包
常用的如:go get github.com/gin-gonic/gin 会自动下载并安装依赖包。若使用了mod,在文件中直接引入即可,执行时会自动下载安装。
也可追加参数,对包进行更新和删除
go install和go build的主要区别就是可以生成.a编译缓存文件。go bulid每次执行都要重新编译所有包文件,而go install则会先检查包对应的.a文件,如果包文件未修改,则直接使用.a文件,不需要重新编译,提高了速度。
如果项目很大,每次编译都要花很长时间,则建议使用 go install 来编译,充分利用它对依赖包的缓存功能。
使用mod创建一个项目
mod是go的依赖管理工具,相当月php的composer。golang在1.11开始才支持mod,在此之前,go使用go get 命令下载依赖包,和项目代码都必须在gopath/src目录下。
modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件,不同项目还可以是使用同一个依赖包,无需重复下载
创建项目
在任意目录下创建一个项目文件夹,如project
打开命令行,在project目录下执行命令:go mod init project
执行成功后,目录下会生成一个go.mod文件夹
下载依赖
在项目目录下新建一个main.go文件,如下
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
fmt.Println("hello mod")
}
文件中引入了gin框架包,我们可以先使用 go get命令先现在依赖,再执行main.go文件
也可也直接执行go main.go,go mod会自动查找依赖自动下载
执行成功后,go.mod文件夹下有一个go.sum文件,可以在go.sum文件下看到gin相关的包
边栏推荐
- Introduction of three temperature measurement methods for PT100 platinum thermal resistance
- Kotlin挂起函数原理是什么
- shell函数内如何调用另一个函数
- 启动项目(瑞吉外卖)
- About the two architectures of ETL (ETL architecture and ELT architecture)
- The prefix and discretization
- 】 【 LeetCode daily one problem - 540. The order of a single element of the array
- 安装失败怎么办
- 如何模拟后台API调用场景,很细!
- 树莓派安装samba用来共享文件
猜你喜欢
随机推荐
CAS:474922-26-4,DSPE-PEG-NH2,DSPE-PEG-amine,磷脂-聚乙二醇-氨基供应
自定义组件,并在组件中注入自定义组件实现多种场景的下的组件切换
消灭异步回调,还得是async-await
如何让 JS 代码不可断点
安装失败怎么办
(一)、线性表的顺序存储结构链式存储结构
又一款高颜值 Redis 官方可视化工具,功能真心强大!
对象实例化之后一定会存放在堆内存中?
How to make JS code unbreakable
darknet source code reading notes-02-list.h and lish.c
小程序笔记3
知乎高赞:拼多多和国家电网,选哪个?
《机器学习的随机矩阵方法》
【日记】mysql基本操作
pyhon爬虫之爬取图片(亲测可用)
IDEA以多端口启动同一个服务项目
两个对象相同数据赋值
To eliminate asynchronous callbacks, it has to be async-await
Matlab画图1
Qt自动补全之QCompleter使用