golang 在windows中设置环境变量的操作


Posted in Golang onApril 29, 2021

安装完成后需要在系统环境变量中设置

golang 在windows中设置环境变量的操作

golang 在windows中设置环境变量的操作

GOPATH为项目目录

GOROOT为安装目录

path中设置好安装目录到bin目录

打开cmd,输入go env,出现如下配置生效

golang 在windows中设置环境变量的操作

补充:Golang 环境变量须知

1.前言

无论你是使用 Windows、Linux 还是 Mac 操作系统来开发 Go 应用程序,在安装好 Go 安装语言开发工具之后,都必须配置好 Go 语言开发所要求的 环境变量,才算初步完成 Go 开发环境的搭建。

但对于一些初学者来说,可能不太明白 Go 语言中常用的环境变量的作用以及如何设置环境变量,下面在 Windows 环境下来讲讲。

2.查看环境变量

安装完 Go 后,我们可以使用 go env 命令查看当前 Go 的所有默认环境变量。

go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\dablelv\AppData\Local\go-build
set GOENV=C:\Users\dablelv\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\go\pkg\mod
set GONOPROXY=git.code.oa.com,git.woa.com
set GONOSUMDB=git.code.oa.com,git.woa.com
set GOOS=windows
set GOPATH=D:\go
set GOPRIVATE=git.code.oa.com,git.woa.com
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\code\kknock\KnockKnock\application\group_srv\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\dablelv\AppData\Local\Temp\go-build853783354=/tmp/go-build -gno-record-gcc-switches

也可以查到指定环境变量的值。

go env GOROOT
C:\Program Files\Go

Go 语言中可以设置的环境变量有很多,每个环境变量都有其作用,不过很多我们可能都用不到,一般需要了解下面几个最常用的就够了。

GOROOT
GOPATH
GO111MODULE
GOPROXY
GOPRIVATE
GOBIN
GOOS
GOARCH

关于环境变量的详细说明,可使用命令go help environment查询。

GOROOT

GOROOT 表示 Go 语言的安装目录。

GOROOT 的作用是用来索引 Go 语言的安装目录下的相关资源,比如 bin 目录的工具(如 go 命令),src 目录下的源码等。

GOPATH

GOPATH 用于指定我们的开发工作区,可以有多个。

按照 Go 开发规范,GOPATH 目录下一般分为三个子目录 src,pkg,bin。

src 目录存放我们需要开发的项目源码,pkg 存放依赖的包和编译后的静态库文件,bin 放源代码编译后台的可执行文件。

下面是一个 GOPATH 目录示例布局。

GOPATH=/home/user/go
/home/user/go/
    src/
        foo/
            bar/               (go code in package bar)
                x.go
            quux/              (go code in package main)
                y.go
    bin/
        quux                   (installed command)
    pkg/
        linux_amd64/
            foo/
                bar.a          (installed package object)

注意:

(1)如果 GOPATH 未显示设置,则默认为用户主目录中名为 go 的子目录。Unix 下为$HOME/go,Windows 下为%USERPROFILE%\go(一般为C:\Users\YourName\go),Plan 9 下为$home/go。

(2)使用模块时,GOPATH 不再用于解析导入,但是它仍然用于存储下载的源代码(在GOPATH/pkg/mod中)和编译的命令(在GOPATH/bin中)。

(3)使用命令go help gopath可查看 GOPATH 详细说明。

GO111MODULE

在 go1.11 的时候推出了这个 go modules 来解决依赖管理的问题。

通过变量 GO111MODULE 来控制 Go Module 的开启和关闭,取值 off、on 或 auto。

从 Go 1.13 开始,Go Module 作为 Golang 中的标准包管理器。

GOPROXY

go get 下载依赖时使用的代理地址列表,使用逗号 (,) 或竖杠 (|) 分隔。

当用 go 命令查找依赖模块时,它会按顺序访问 GOPROXY 列表中的每个代理,直到收到成功的响应或出现终端错误。

GOPROXY 中可能会存在两个关键字来代替代理URL:

off:不允许从任何源下载依赖的模块

direct: 直接从版本控制存储库下载,而不是使用模块代理

GOPROXY 缺省值为https://proxy.golang.org,direct。

GOPRIVATE

go get 通过代理服务拉取仓库时,因为代理服务不可能访问到私有仓库(一般为企业内部代码管理平台),会出现 404 错误。

go1.13 版本提供了一个方便的解决方案:GOPRIVATE 环境变量。

如:

setx GOPRIVATE=gitlab.com,git.woa.com

GOBIN

用于存储我们使用go install命令安装的程序。

如果没有设置 GOBIN,程序一般会安装到为GOPATH/bin目录。

GOOS

当前的操作系统。例如 linux、darwin、windows、netbsd、freebsd、openbsd、solaris、plan9 等。

注意 mac os对应的值是 darwin。

GOARCH

表示 CPU 架构。如 amd64、386、arm、ppc64 等。

3.小结

环境变量的设置,可以影响我们开发和编译项目的过程与结果,所以还是很有必要了解一下的。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Golang 相关文章推荐
golang如何去除多余空白字符(含制表符)
Apr 25 Golang
golang在GRPC中设置client的超时时间
Apr 27 Golang
goland设置颜色和字体的操作
May 05 Golang
浅谈Golang 切片(slice)扩容机制的原理
Jun 09 Golang
go开发alertmanger实现钉钉报警
Jul 16 Golang
go使用Gin框架利用阿里云实现短信验证码功能
Aug 04 Golang
Golang 并发下的问题定位及解决方案
Mar 16 Golang
golang生成vcf通讯录格式文件详情
Mar 25 Golang
Golang流模式之grpc的四种数据流
Apr 13 Golang
Golang 切片(Slice)实现增删改查
Apr 22 Golang
Golang实现可重入锁的示例代码
May 25 Golang
Go Grpc Gateway兼容HTTP协议文档自动生成网关
Jun 16 Golang
解决golang在import自己的包报错的问题
golang import自定义包方式
golang 接口嵌套实现复用的操作
Apr 29 #Golang
浅谈Golang 嵌套 interface 的赋值问题
Apr 29 #Golang
Go 实现英尺和米的简单单位换算方式
Apr 29 #Golang
Golang 空map和未初始化map的注意事项说明
彻底理解golang中什么是nil
You might like
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
UNIX文件名称有什么规定
2013/03/25 面试题
出纳岗位职责范本
2013/12/01 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
同志主要表现材料
2014/08/21 职场文书
科学育儿宣传标语
2014/10/08 职场文书
六年级小学生评语
2014/12/26 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书