当我运行 go install
我自己的一些包裹位于 %GOPATH%\src
, 它将被安装到 %GOPATH%\pkg
.
我读到 %GOROOT%
和 %GOPATH%
文件夹具有类似的组织。所以我尝试了 go install cmd\cgo
与 %GOROOT%\src\cmd\cgo
包,它是 golang 安装的一部分。但是最后的cgo.exe
安装到 %GOROOT%\pkg\tool\
.
我检查了所有 *.go
cmd\cgo
中的文件文件夹。他们都有一个package main
声明。所以我期待最后的 cgo.exe
将安装到 %GOROOT%\bin
.
我的问题是:
- 为什么
cgo.exe
安装到pkg
而不是bin
? tool
在哪里?参与pkg\tool
来自?我可以为自己的包裹做类似的事情吗?
最佳答案
go build
命令依赖于 go 工具目录,其中安装了构建工具(compile.exe
、link.exe
、...)。
ToolDir
定义为:
var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
所以任何构建工具都在 %GOROOT%\pkg\tool\
关于go - 什么规则决定了 Go 包的安装位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40879451/