剖析“go install”:揭秘构建和安装过程
文档中经常没有解释 go build 和 go 之间的区别安装可能会让开发人员感到困惑。虽然大多数人期望 go install 通过将编译的可执行文件重新定位到指定位置来镜像 make install 的功能,但他们惊讶地发现结果驻留在 GOROOT/bin 目录中。本文旨在阐明这两个命令的目的和行为。
实际发生了什么?
go build 是一个简单的编译工具。它只是组装可执行文件并将其存储在指定的目的地。另一方面,go install 执行稍微复杂的过程:
可视化包树
为了说明 go build 和go install,考虑以下包树:
. ├── bin │ └── hello # by go install └── src └── hello ├── hello # by go build └── hello.go
hello 可执行文件由 go build 编译并驻留在src/hello 目录,而 go install 则放在 $GOPATH/bin 中,并将依赖缓存存储在 $GOPATH/pkg 中。
安装位置可以自定义吗?
与make install不同,go install不提供指定自定义安装目录的选项。为了实现这种级别的控制,有必要创建一个定义构建和安装过程的 Makefile。但是,通常不建议使用这种方法。
其他上下文
有关更多见解,请参阅有关以下主题的官方文档:
以上是`go build` 和 `go install` 之间有什么区别,它们在哪里安装可执行文件?的详细内容。更多信息请关注PHP中文网其他相关文章!