Avatar ·

`go build` 到底做了什么?解析 `go build` vs `go install`

大家好!我刚开始学习 Go,正在尝试理解如何正确构建项目。我读了很多文章,但还是对 `go build` 和 `go install` 命令感到困惑。 我有一个简单的项目,main 包在根目录。当我在项目文件夹中执行 `go build` 时,它会在当前目录下生成一个二进制文件(我在 Windows 上使用 Go 1.20)。但如果我执行 `go install`,项目文件夹中看不到任何二进制文件,但在 `%GOPATH%/bin` 中会出现我的可执行文件。 区别在哪里?如果 `go build` 已经生成了二进制文件,为什么还需要 `go install`?我听说 `go build` 还会检查依赖,而 `go install` 会安装它们?还是说不是这样? 我的示例代码: ```go package main import "fmt" func main() { fmt.Println("Hello, Go!") } ``` 我运行 `go build` 后,在当前文件夹中得到 `hello.exe`(在 Linux 上是 `hello`)。然后运行 `go install`,项目文件夹中的二进制文件消失了,但在 `C:\Users\Me\go\bin\hello.exe` 中出现。 请解释一下,