环境变量
查看 Go 相关的环境变量
#
设置方法
#
Go version >= 1.13
#
Go version < 1.13
#
环境变量参考
#
关于默认值:* 代表视情况而定,- 代表空值
通用
#
CGO相关
#
变量名 | 默认 | 描述 |
---|
AR | ar | 使用gccgo编译器生成时用于操作库归档的命令。 |
CC | clang | 用于编译C代码的命令 |
CGO_ENABLED | 1 | 是否支持cgo命令。0或1。 |
CGO_CFLAGS | -g -O2 | 编译C代码时CGO将传递给编译器的标志。 |
CGO_CFLAGS_ALLOW | - | 指定允许出现在#cgo CFLAGS源代码指令中的附加标志的正则表达式。不适用于CGO_CFLAGS环境变量。 |
CGO_CFLAGS_DISALLOW | - | 指定不允许出现在#cgo CFLAGS源代码指令中的附加标志的正则表达式。不适用于CGO_CFLAGS环境变量。 |
CGO_CPPFLAGS, CGO_CPPFLAGS_ALLOW, CGO_CPPFLAGS_DISALLOW | - | 与CGO_CFLAGS,CGO_CFLAGS_ALLOW,CGO_CFLAGS_DISALLOW类似,但是是用于C预处理器 |
CGO_CXXFLAGS, CGO_CXXFLAGS_ALLOW, CGO_CXXFLAGS_DISALLOW | - | 与CGO_CFLAGS,CGO_CFLAGS_ALLOW,CGO_CFLAGS_DISALLOW类似,但是是用于C++编译器 |
CGO_FFLAGS, CGO_FFLAGS_ALLOW, CGO_FFLAGS_DISALLOW | - | 与CGO_CFLAGS,CGO_CFLAGS_ALLOW,CGO_CFLAGS_DISALLOW类似,但是是用于Fortran编译器。 |
CGO_LDFLAGS, CGO_LDFLAGS_ALLOW, CGO_LDFLAGS_DISALLOW | - | 与CGO_CFLAGS,CGO_CFLAGS_ALLOW,CGO_CFLAGS_DISALLOW类似,但是是用于链接器 |
CXX | clang++ | 用于编译C++代码的命令。 |
FC | - | 用于编译Fortran代码的命令。 |
PKG_CONFIG | pkg-config | pkg-config工具的路径 |
特殊平台相关
#
变量名 | 描述 |
---|
GOARM | 对于GOARCH=ARM,为其编译的ARM体系结构。有效值为5、6、7。 |
GO386 | 对于GOARCH=386,如何实现浮点指令。有效值为SSE2(默认值)、SoftFloat。 |
GOMIPS | 对于GOARCH=MIPS{,le},是否使用浮点指令。有效值为hardFloat(默认值)、softFloat。 |
GOMIPS64 | 对于GOARCH=MIPS64{,LE},是否使用浮点指令。有效值为hardFloat(默认值)、softFloat。 |
GOPPC64 | 对于GOARCH=ppc64{,le},目标ISA(指令集体系结构)。有效值为POWER8(默认值)、POWER9。 |
GOWASM | 对于GOARCH=wasm,要使用的实验性WebAssembly特性的列表,以逗号分隔。有效值为satconv、signext。 |
特殊用途相关
#
变量名 | 描述 |
---|
GCCGOTOOLDIR | 如果设置,则在何处查找gccgo工具,如cgo。默认值基于gccgo的配置方式。 |
GOEXPERIMENT | 逗号分隔的要启用或禁用的工具链实验列表。可用实验的列表可能会随着时间的推移而任意改变。有关当前有效值的信息,请参见src/Internal/go实验/flag s.go。警告:此变量用于GO工具链本身的开发和测试。不支持超出该目的的使用。 |
GOROOT_FINAL | 当go安装在构建位置以外的位置时的安装路径。堆栈跟踪中的文件名将从GOROOT重写为GOROOT_FINAL。 |
GO_EXTLINK_ENABLED | 将-linkmode=auto与使用CGO的代码一起使用时,链接器是否应使用外部链接模式。设置为0将禁用外部链接模式,设置为1将启用该模式。 |
GIT_ALLOW_PROTOCOL | 由Git定义。冒号分隔的允许与GIT FETCH/CLONE一起使用的方案列表。如果设置,任何未明确提到的方案都将被“Go Get”视为不安全。因为变量是由Git定义的,所以不能使用‘go env -w’设置默认值。 |
额外信息
#
变量名 | 描述 |
---|
GOEXE | 可执行文件名后缀(Windows 上为“.exe”,其他系统上为“”)。 |
GOGCCFLAGS | 提供给 CC 命令的以空格分隔的参数列表。 |
GOHOSTArCH | GO 工具链二进制文件的架构(GOARCH)。 |
GOHOSTOS | Go 工具链二进制文件的操作系统(GOOS)。 |
GOMOD | 主模块 go.mod 的绝对路径。如果启用了模块感知模式,但没有go.mod,则GOMOD将为os.DevNull(在类Unix系统上为“/dev/null”,在Windows上为“nul”)。如果禁用模块感知模式,则GOMOD将为空字符串。 |
GOTOOLDIR | go工具(compile,cover,doc,etc…)所在的目录 |
GOVERSION | 已安装go的版本, 和runtime.Version一样 |
参考链接:https://pkg.go.dev/cmd/go#hdr-Environment_variables