golang环境变量存储在哪里?
我刚开始在Windows 7golang环境变量存储在哪里?
学习golang随着go env
,我得到这个:
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=E:\Workbench\Go
set GORACE=
set GOROOT=C:\DevTools\Go
set GOTOOLDIR=C:\DevTools\Go\pkg\tool\windows_amd64
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
然后我在命令行中与echo %envVar%
检查,我发现ENV瓦尔像:
GOPATH
GOROOT
但没有找到其他人。
那么他们存储在哪里?一些隐藏的配置文件?
这些只是您平台的默认设置。将它们视为存储在go.exe可执行文件本身中。
您可以通过将它们设置为与其他任何env var类似的设置来覆盖它们。
就像@David Budworth说的那样,这些变量是你平台的默认值。
大多数情况下,我们更改$GOPATH
和$GOROOT
变量。例如,在我的电脑中,我使用export GOPATH=/home/user/go
,而你的电脑可能与我的不同。
否则,如果你看看其他变量的存储位置,你需要看/usr/lib/go-1.6/src
(对不起,我现在用的是Ubuntu
,而且我不知道Windows中的路径目录),你当你建立你的go executable
时,会发现有很多bash
scripts。
例如:make.bash你会看到:
文件中$GROOT
被宣布有,并用于建立最终go executable
:
export GOROOT="$(cd .. && pwd)"
我看见了,还有,你的意见对GOTOOLDIR
和它如何知道你的安装位置。我会说,那去的源代码有答案,你可以找到它here:
// ToolDir is the directory containing build tools.
var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
编辑: 我发现关于建立去这个好文章:How GO uses to build itself
PS:对不起我的英语不好。我不是英语母语的人。
我假设你不会从字面上做:'export GOPATH =/home/user/go/src',而是做:'export GOPATH =/home/user/go',否则你会有$ HOME/go/src/src/STUFF YOU GO GET –
是的,这是一个错误,你是对的,正确的路径是'export GOPATH = $ HOME/go'或'export GOPATH =/user_path/go',我会编辑我的答案。 –
但是对于'GOTOOLDIR',如果它在go.exe中,它怎么知道去我盒子上的安装位置?或者它从'GOROOT'推断它? – smwikipedia
而'set'部分给我的印象是它将这些变量添加到我的环境中。 – smwikipedia
我假设go工具正在调用win32 api来获取它自己的位置,然后从那里计算默认路径。请参阅此示例的api:http://*.com/questions/2647429/c-windows-path-to-the-folder-where-the-executable-is-located –