自学内容网 自学内容网

go语言环境变量及其作用

Go语言环境变量

set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\rrrr\AppData\Local\go-build
set GOENV=C:\Users\rrrr\AppData\Roaming\go\env  
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\rrrr\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\rrrr\go
set GOPRIVATE=
set GOPROXY=https://mirrors.aliyun.com/goproxy
set GOROOT=E:\GO\install
set GOSUMDB=off
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=E:\GO\install\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.22.4
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\rrrr\AppData\Local\Temp\go-build59495733=/tmp/go-build -gno-record-gcc-switches
  1. GO111MODULE:

    • 用途: 控制Go模块支持。
    • :
      • on: 启用模块支持。
      • off: 禁用模块支持。
      • auto: 根据环境自动启用或禁用模块支持。
  2. GOARCH:

    • 用途: 指定编译目标的架构。
    • : 常见值包括 amd64, 386, arm, arm64 等。在此例中,amd64 表示目标架构为64位x86架构。
  3. GOBIN:

    • 用途: 指定go install命令安装二进制文件的目录。
    • : 此例为空,表示安装路径默认为 GOPATH/bin
  4. GOCACHE:

    • 用途: 指定构建缓存的目录。
    • : C:\Users\rrrr\AppData\Local\go-build,表示缓存存储在这个目录中。
  5. GOENV:

    • 用途: 指定存储Go环境变量的文件路径。
    • : C:\Users\rrrr\AppData\Roaming\go\env,表示Go环境变量存储在这个文件中。
  6. GOEXE:

    • 用途: 指定生成可执行文件的后缀。
    • : .exe,表示在Windows平台上生成的可执行文件以 .exe 结尾。
  7. GOEXPERIMENT:

    • 用途: 启用实验性的Go编译器功能。
    • : 空,表示没有启用任何实验性功能。
  8. GOFLAGS:

    • 用途: 指定go命令行工具的默认标志。
    • : 空,表示没有默认标志。
  9. GOHOSTARCH:

    • 用途: 指定运行Go编译器的主机架构。
    • : amd64,表示主机架构为64位x86架构。
  10. GOHOSTOS:

    • 用途: 指定运行Go编译器的主机操作系统。
    • : windows,表示主机操作系统为Windows。
  11. GOINSECURE:

    • 用途: 指定不验证SSL证书的私有模块。
    • : 空,表示没有不验证SSL证书的模块。
  12. GOMODCACHE:

    • 用途: 指定模块缓存的目录。
    • : C:\Users\rrrr\go\pkg\mod,表示模块缓存存储在这个目录中。
  13. GONOPROXY:

    • 用途: 指定不使用代理的私有模块。
    • : 空,表示所有模块都使用代理。
  14. GONOSUMDB:

    • 用途: 指定不使用校验和数据库的私有模块。
    • : 空,表示所有模块都使用校验和数据库。
  15. GOOS:

    • 用途: 指定编译目标的操作系统。
    • : windows,表示目标操作系统为Windows。
  16. GOPATH:

    • 用途: 指定Go工作区的根目录。
    • : C:\Users\rrrr\go,表示Go工作区根目录为这个路径。
  17. GOPRIVATE:

    • 用途: 指定私有模块的路径前缀。
    • : 空,表示没有私有模块。
  18. GOPROXY:

    • 用途: 指定Go模块代理的地址。
    • : https://mirrors.aliyun.com/goproxy,表示使用阿里云的Go模块代理。
  19. GOROOT:

    • 用途: 指定Go安装的根目录。
    • : E:\GO\install,表示Go安装在这个目录中。
  20. GOSUMDB:

    • 用途: 指定Go模块校验和数据库。
    • : off,表示禁用模块校验和数据库。
  21. GOTMPDIR:

    • 用途: 指定临时文件的目录。
    • : 空,表示使用系统默认的临时文件目录。
  22. GOTOOLCHAIN:

    • 用途: 指定Go工具链版本。
    • : auto,表示自动选择工具链版本。
  23. GOTOOLDIR:

    • 用途: 指定Go工具的目录。
    • : E:\GO\install\pkg\tool\windows_amd64,表示Go工具存储在这个目录中。
  24. GOVCS:

    • 用途: 指定版本控制系统配置。
    • : 空,表示使用默认配置。
  25. GOVERSION:

    • 用途: 指定当前Go的版本。
    • : go1.22.4,表示使用Go 1.22.4版本。

C/C++环境变量

  1. GCCGO:

    • 用途: 指定Go编译器使用的gccgo编译器。
    • : gccgo,表示使用gccgo编译器。
  2. GOAMD64:

    • 用途: 指定64位架构的版本。
    • : v1,表示使用v1版本的amd64架构。
  3. AR:

    • 用途: 指定ar工具,用于创建、修改和提取归档文件。
    • : ar,表示使用默认的ar工具。
  4. CC:

    • 用途: 指定C编译器。
    • : gcc,表示使用gcc编译器。
  5. CXX:

    • 用途: 指定C++编译器。
    • : g++,表示使用g++编译器。
  6. CGO_ENABLED:

    • 用途: 指定是否启用cgo(允许Go程序调用C代码)。
    • : 1,表示启用cgo。
  7. CGO_CFLAGS:

    • 用途: 指定传递给C编译器的标志。
    • : -O2 -g,表示优化级别为O2,并包含调试信息。
  8. CGO_CPPFLAGS:

    • 用途: 指定传递给C预处理器的标志。
    • : 空,表示没有传递额外标志。
  9. CGO_CXXFLAGS:

    • 用途: 指定传递给C++编译器的标志。
    • : -O2 -g,表示优化级别为O2,并包含调试信息。
  10. CGO_FFLAGS:

    • 用途: 指定传递给Fortran编译器的标志。
    • : -O2 -g,表示优化级别为O2,并包含调试信息。
  11. CGO_LDFLAGS:

    • 用途: 指定传递给链接器的标志。
    • : -O2 -g,表示优化级别为O2,并包含调试信息。
  12. PKG_CONFIG:

    • 用途: 指定pkg-config工具的路径,用于管理库的编译和链接标志。
    • : pkg-config,表示使用默认的pkg-config工具。
  13. GOGCCFLAGS:

    • 用途: 指定传递给GCC编译器的标志。
    • : -m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\rrrr\AppData\Local\Temp\go-build59495733=/tmp/go-build -gno-record-gcc-switches,表示编译器使用这些标志。

总结

这些环境变量用于配置Go语言编译器、工具链和构建过程,确保代码在不同的操作系统和架构上能够正确编译

参考文档:https://blog.csdn.net/qq_38151401/article/details/105729884
https://blog.csdn.net/qq_38151401/article/details/105780251
https://blog.csdn.net/qq_27682041/article/details/78759542


原文地址:https://blog.csdn.net/wj617906617/article/details/140649038

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!