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 协议》,转载必须注明作者和本文链接
推荐文章: