分类: Golang
go build 和 go install 的区别

首先,go install与go build都可生成执行文件,
go build
通过go build加上要编译的Go源文件名,可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉,生成可执行的文件放在当前目录中。

$ go build  hellogo.go
$ ls
hellogo* hellogo.go

也可以通过-o选项来指定其他名字:

$ go build -o myfirstgo hellogo.go
$ ls
myfirstgo* hellogo.go

如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件:

$ go build
$ ls
go-examples* hellogo.go
go install

与build命令相比,install命令在编译源码后还会将可执行文件或库文件安装到约定的目录下。

go install编译出的可执行文件以其所在目录名(DIR)命名
go install将可执行文件安装到与src同级别的bin目录下,bin目录由go install自动创建
go install 还会把导入的依赖包编译到 $GOPATH/pkg,并缓存,如果包未做更改,下次编译则直接使用缓存。
go build 命令加参数 -i 也能达到go install 的效果。

如项目很大,每次编译都要花很长时间,则建议使用 go install 来编译,充分使用它对依赖包的缓存功能。

发表新评论