`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` 中出现。
请解释一下,