go run build install get 的区别 以及三种不同的go源码文件

本文详细介绍了Go语言中的三种编译与运行方式:gorun、gobuild和goinstall的区别与应用场景。通过实际操作,展示了如何使用这些命令进行程序调试、编译检查及安装可执行文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

go run:go run 编译并直接运行程序,它会产生一个临时文件(但不会生成 .exe 文件),直接在命令行输出程序执行结果,方便用户调试, 

go build:go build 用于测试编译包,主要检查是否会有编译错误,如果是一个可执行文件的源码(即是 main 包),就会直接生成一个可执行文件,编译出可执行文件

go install:go install 的作用有两步:第一步是编译导入的包文件,所有导入的包文件编译完才会编译主程序;第二步是将编译后生成的可执行文件放到 bin 目录下($GOPATH/bin),编译后的包文件放到 pkg 目录下($GOPATH/pkg),go build + 把编译后的可执行文件放到GOPATH/bin目录下

go get: git clone + go install

以下是三种不同的go源码文件

命令源码文件:main 文件

库源码文件:非main文件

测试文件:test文件

创建 测试项目,主要结构如下:

testpkg 如下: 

package testpkg
 
import "fmt"
 
func Myfunc() {
	fmt.Println("Myfunc")
}

testmain 如下: 

package main
 
import "testpkg"
 
func main() {
	testpkg.Myfunc()
}

go run 命令测试:

进入到 src 目录下,依次执行 go run testmain/testmain.go 命令和 go run testpkg/testpkg.go 命令

 testmain.go 为 main 包,所以可以运行;testpkg.go 不是 main 包,所以无法运行

 

go build 命令测试:

进入到 src 目录下,执行 go build mypkg/mypkg.go 命令

编译 testpkg.go 文件后,没有产生额外文件 

进入到 src 目录下,执行 go build testmain/testmain.go命令。

编译 testmain.go 文件后,会在 src目录下(即当前目录下)生成 testmain.exe 文件,当前目录结构:

go install 命令测试:

进入到 testpkg 目录下,执行 go install 命令。(也可以在 src 目录下执行 go install testpkg 命令)

go install 命令执行后,在 $GOPATH/pkg/windows_amd64 目录下生成一个名字为 testpkg.a 的包文件。当前目录结构如下:

删除 windows_amd64 目录继续测试

进入到 testmain 目录下,执行 go install 命令。(也可以在 src 目录下执行 go install testmain  命令)

go install 命令执行后,在 $GOPATH/pkg/windows_amd64 目录下生成一个名字为 testpkg.a 的包文件,在 $GOPATH/bin 目录下生成一个名字为 testmain.exe 的可执行文件。当前目录结构如下: 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值