最近在使用beego的工具bee时遇到了一些问题,翻来覆去的配置也从中重新的认识了go的一些环境变量的作用和配置。这里梳理和整理下,仅仅是自己的理解。
- 查看go的配置
go env
- 修改配置可以使用
go env -w GOPATH=D:\Go
常规指定
一般在安装和配置时有一些建议。
1.建议不要装c盘有权限操作的一些问题。
2.不建议将GOPATH和GOROOT指向相同的路径,当然现在都基于mod了会好点。但还是不建议,GOPATH目录下会生成一些用户开发项目时的一些依赖包等。
3.建议指定GOBIN 并配置下环境变量,这样在build的后的包
# GOROOT
GOROOT=C:\Program Files\Go #一般指go的安装程序所在目录,里面存放了大概9个文件夹 各文件夹的含义就不在此说了
GOPATH=C:\Users\pro91\go #值用户创建的开发项目的目录,
GOBIN=D:\Program Files\Go\bin
GOBIN=C:\Program Files\Go\bin #这个默认没有指定,但是如果指定,当你下载的一些工具的打包文件.exe 都会在打包后cp到该目录下一份,方便环境支持执行。 在win环境下的c盘有权限问题。会报权限不够。
GOCACHE=C:\Users\pro91\AppData\Local\go-build #就是build是可执行文件临时放的目录,指定了GOBIN会在生成后从该目录copy到GOBIN目录下一份。
GOENV=C:\Users\pro91\AppData\Roaming\go\env #环境变量存储的所在位置。
GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64 #工具文件夹,这个目录默认是在%GOROOT%追加的pkg\tool\windows_amd64
GOMODCACHE=C:\Users\pro91\go\pkg\mod #是mo项目下载的包存放的缓存目录
安装配置
- 安装go程序到D:\Program Files\Go 即 GOROOT=D:\Program Files\Go
- 设置环境变量PATH = D:\Program Files\Go\bin\
- go env -w GOPROXY=‘https://goproxy.cn/,direct’
set GO111MODULE=
set GOARCH=amd64
set GOBIN=D:\Program Files\Go\bin
set GOCACHE=C:\Users\pro91\AppData\Local\go-build
set GOENV=C:\Users\pro91\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\Program Files\Go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\wwwroot
set GOPRIVATE=
set GOPROXY=https://goproxy.cn/,direct
set GOROOT=D:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.10
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\Program Files\Go\src\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 -fmessage-length=0 -fdebug-prefix-map=C:\Users\pro91\AppData\Local\Temp\go-build203443272=/tmp/go-build -gno-record-gcc-switches
#其中bin 和 path 需要在系统环境变量和系统用户变量内修改的。
go env -w GOENV='D:\Program Files\Go\env' ##这个只能在环境变量内设置
GOPROXY=https://goproxy.cn/,direct
GOROOT=D:\Program Files\Go
GOBIN=D:\Program Files\Go\bin
GOMODCACHE=D:\Program Files\Go\pkg\mod
GOPATH=D:\wwwroot
go env -w GOPROXY='https://goproxy.cn/,direct'
go env -w GOROOT='D:\Program Files\Go'
go env -w GOBIN='D:\Program Files\Go\bin'
go env -w GOMODCACHE='D:\Program Files\Go\pkg\mod'
go env -w GOPATH='D:\wwwroot'
❯ go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=D:\Program Files\Go\bin
set GOCACHE=C:\Users\pro91\AppData\Local\go-build
set GOENV=C:\Users\pro91\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\Program Files\Go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\wwwroot
set GOPRIVATE=
set GOPROXY=https://goproxy.cn/,direct
set GOROOT=D:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.10
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
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 -fmessage-length=0 -fdebug-prefix-map=C:\Users\pro91\AppData\Local\Temp\go-build2896333002=/tmp/go-build -gno-record-gcc-switches
https://blog.csdn.net/peng2hui1314/article/details/119936821
$GOOS | $GOARCH | 描述 |
---|---|---|
darwin | amd64 | Mac 64 位系统 |
darwin | arm64 | Mac 64 位系统(ARM) |
linux | 386 | Linux 32 位系统 |
linux | amd64 | Linux 64 位系统 |
linux | arm | Linux 32 位系统(ARM) |
linux | arm64 | Linux 64 位系统(ARM) |
windows | 386 | Windows 32 位系统 |
windows | amd64 | Windows 64 位系统 |
windows | arm | Windows 32 位系统(ARM) |
windows | arm64 | Windows 64 位系统(ARM) |
编译方法
# 在命令行进入项目根目录,并执行以下命令
CGO_ENABLED=0
GOOS=xxx
GOARCH=xxx
go build -0 swagger.exe main.go