当我使用位于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
部分来自哪里?我可以为自己的包装做类似的事吗?答案 0 :(得分:3)
go build
命令依赖于go工具目录,其中安装了构建工具(compile.exe
,link.exe
,...)。
ToolDir
定义为:
var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
所以任何构建工具都在%GOROOT%\pkg\tool\