Go语言之go build go install

区别

go build:用于测试编译包,在项目目录下生成可执行文件(有main包)。

go install:主要用来生成库和工具。一是编译包文件(无main包),将编译后的包文件放到 pkg 目录下($GOPATH/pkg)。二是编译生成可执行文件(有main包),将可执行文件放到 bin 目录($GOPATH/bin)。

使用

go env

我的项目结构如下:

src/hello/test/test1.go

package test
import "fmt"
func MyTest1()  {   
 fmt.Println("test1")
}

src/hello/test/test2.go

package test
import "fmt"
func MyTest2()  {   
fmt.Println("test2")
}

sec/hello/main.go

package main
import "fmt"
func main() {   
fmt.Println("main")   
}

使用go build

进入hello目录下执行 go build

这个时候会在hello目录下生成一个hello.exe文件

然后我们进入test目录执行

不管是go build还是go build test1.go go build test2.go都不会产生额外文件。

使用go install

进入hello目录执行go install

这个时候产生bin目录以及hello.exe文件【这里有没有发现 之前在hello目录下的hello.exe自动被删了】

进入test目录

这时候产生了pkg目录,但是不会产生bin目录

注意:go install 的时候包名要从$GOPATH/src下面的目录开始写。 比如在src下面有一个项目project,下面有个tools包,应该写成这样: go install project/tools 按照上面这个原则,就会在$GOPATH/pkg下面生成a文件了

参考资料:

www.jianshu.com/p/3db831d9b553

blog.csdn.net/zyz770834013/article...

www.jianshu.com/p/d9ee6e88a751

seekload.net/2019/01/29/go-package...

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!