当前位置:网站首页>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相关的包
边栏推荐
- 【日记】nodejs构建API框架以及RESTful API 和 JSON-RPC的取舍
- Cholesterol-PEG-Maleimide,CLS-PEG-MAL,胆固醇-聚乙二醇-马来酰亚胺一种修饰性PEG
- (1), the sequential storage structure of linear table chain storage structure
- yarn详细入门教程
- 网络靶场监控系统的安全加固纪实(1)—SSL/TLS对日志数据加密传输
- 树莓派温度监视关机保护脚本
- 学习探索-网站中引入百度统计
- LeetCode 899. 有序队列
- 语音识别学习资源
- mysqlbinlog 超过500g自动删除,保留7个,求大深给个版本
猜你喜欢
框架整合(二)- 使用Apache ShardingSphere实现数据分片
开发一套高容错分布式系统
荣耀互联对外开放,赋能智能硬件合作伙伴,促进全场景生态产品融合
《机器学习的随机矩阵方法》
NLP未来,路在何方?从学术前沿和业界热点谈起
网页端IM即时通讯开发:短轮询、长轮询、SSE、WebSocket
】 【 LeetCode daily one problem - 540. The order of a single element of the array
Boost library study notes (1) Installation and configuration
学习探索-给字体设置前景色
LVS+Keepalived群集
随机推荐
To eliminate asynchronous callbacks, it has to be async-await
SRM Supplier Collaborative Management System Function Introduction
启动项目(瑞吉外卖)
身为程序员的我们如何卷死别人?破局重生。
基于层次分析法的“内卷”指数分析
NLP未来,路在何方?从学术前沿和业界热点谈起
化学制品制造业数智化供应链管理系统:打造智慧供应体系,赋能企业产效提升
【 Gazebo introductory tutorial] speak the second model library into robot modeling and visualization (editor) model
我的大一.
【技术积累】JS事件循环,Promise,async/await的运行顺序
2018读书记
Codeforces Round #811 (Div. 3)
R语言缺失时间序列的填充及合并:补齐时间序列数据中所有缺失的时间索引、使用merge函数合并日期补齐之后的时间序列数据和另外一个时间序列数据(补齐左侧数据)
Catering Supply Chain Management System
对象实例化之后一定会存放在堆内存中?
如何模拟后台API调用场景,很细!
SQL优化最全总结 - MySQL(2022最新版)
】 【 LeetCode daily one problem - 540. The order of a single element of the array
从-99打造Sentinel高可用集群限流中间件
R语言ggpubr包的ggline函数可视化折线图、设置add参数为mean_se和dotplot可视化不同水平均值的折线图并为折线图添加误差线(se标准误差)和点阵图、设置折线和数据点边框颜色