duankuang1046 2016-11-30 02:54
浏览 18

什么规则决定Go软件包的安装位置?

When I run go install with some of my own package located in %GOPATH%\src, it will be installed to %GOPATH%\pkg.

I read that %GOROOT% and %GOPATH% folders have similar organization. So I tried go install cmd\cgo with the %GOROOT%\src\cmd\cgo package which is part of the golang installation. But the final cgo.exe is installed to %GOROOT%\pkg\tool\.

I checked all the *.go files in the cmd\cgo folder. They all have a package main declaration. So I was expecting the final cgo.exe to be installed to %GOROOT%\bin.

My questions are:

  • Why the cgo.exe is installed to pkg rather than bin?
  • Where does the tool part in the pkg\tool come from? Can I do similar thing for my own package?
  • 写回答

1条回答 默认 最新

  • dongyun8075 2016-11-30 05:50
    关注

    The go build command relies on a go tool directory, where build tools are installed (compile.exe, link.exe, ...).

    And ToolDir is defined as:

    var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
    

    So any build tool is in %GOROOT%\pkg\tool\

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题