0

I am beginner in go and facing difficulty in understanding go/pkg folder.As suggested by documentation it contains pkg/mod and pkg/windowsamd_64. pkg/windowsamd_64 for storing compiled files. What happens if I have a file importing some external github modules and do go build on that.

  • Will it go first to pkg/mod (but modules are compiled in pkg/windowsamd_64) to search for external modules
  • Will it go first to pkg/windowsamd_64 (then what will be use of pkg/mod) to search for modules
  • Will it go to {gopath}/src and do something from there
  • pkg/mod is just a folder ,why do we call it cache as it will keep on filling or better when does it populate?
4

1 回答 1

1

go命令有两种不同的定位包模式:模块模式(在 Go 1.11 中引入)和GOPATH模式(更旧)。模块模式是 Go 1.16 的默认模式,如果您是 Go 新手,您可能希望专门在该模式下工作。GOPATH(除非您有一个需要它的大型遗留代码库,否则在模式下工作没有多大意义。)

pkg/mod存储缓存的源代码以在模块模式下使用。当您从该模块构建包时(例如,作为某个其他包的依赖项),该模块的给定版本的源代码会自动下载。

GOPATH/src存储用于GOPATH模式的源代码。您也可以选择在模块模式下在该目录中工作,但这是一个完全可选/美观的选择,不应该改变模块模式下任何东西的行为。

pkg/windows_amd64以模式存储已安装的软件包GOPATH。但是,安装的包无论如何都不是很有用,因为 Go 有一个单独的构建缓存(即使在GOPATH模式下)。所以你几乎可以pkg/windows_amd64完全忽略。

于 2021-06-24T21:20:47.630 回答