golang 编译使用go build 还是go install?

golang 的go build、go install 命令都是可生成可实行文件,了解它们的小区别以选择适合自己的。

go installgo build 在没有参数时运行,都会在当前目录下编译,如果当前目录是软件主程序(package main

  • go build 会生成可实行文件放在当前目录中
  • go install 则会把它放到 $GOPATH/bin 中。

go install 还会把导入的依赖包编译到 $GOPATH/pkg,并缓存,如果包未做更改,下次编译则直接使用缓存。 go build 命令加参数 -i 也能达到go install 的效果。

如果当前目录是非主包,则go install 直接把编译结果安装到 $GOPATH/pkg

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

Relative Articles
评论