go build与go install的区别

简介: go build与go install的区别

go build


通过 go build 加上要编译的 Go 源文件名,我们即可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉 .go 后缀。


go build hello.go


当然我们也可以通过 -o 选项来指定其可执行文件名字:


go build -o mygo hello.go


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

image.png

go install


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


  • go install 编译出的可执行文件以其所在目录名(DIR)命名
  • go install 将可执行文件安装到与 src 同级别的 bin 目录下,bin 目录由 go install 自动创建
  • go install 将可执行文件依赖的各种 package 编译后,放在与 src 同级别的 pkg 目录下
相关文章
|
3月前
|
Go 调度 开发者
[go 面试] 深入理解进程、线程和协程的概念及区别
[go 面试] 深入理解进程、线程和协程的概念及区别
|
3月前
|
并行计算 数据挖掘 大数据
[go 面试] 并行与并发的区别及应用场景解析
[go 面试] 并行与并发的区别及应用场景解析
|
13天前
|
存储 Rust Go
Go nil 空结构体 空接口有什么区别?
本文介绍了Go语言中的`nil`、空结构体和空接口的区别。`nil`是预定义的零值变量,适用于指针、管道等类型;空结构体大小为0,多个空结构体实例指向同一地址;空接口由`_type`和`data`字段组成,仅当两者均为`nil`时,空接口才为`nil`。
Go nil 空结构体 空接口有什么区别?
|
3月前
|
Unix 编译器 Go
|
3月前
|
存储 Go
go 切片长度与容量的区别
go 切片长度与容量的区别
|
3月前
|
存储 Go 数据处理
C 数组和 Go 切片的区别详解
【8月更文挑战第31天】
36 0
|
5月前
|
Go
Go 中 NEW 和 MAKE 的区别
Go 中 NEW 和 MAKE 的区别
|
5月前
|
Go
The “gopls“ command is not available. Run “go get -v golang.org/x/tools/gopls“ to install.【已解决】
The “gopls“ command is not available. Run “go get -v golang.org/x/tools/gopls“ to install.【已解决】
62 3
|
5月前
|
安全 Go 开发者
Go语言中的空值与零值有什么区别?
在Go语言中,`nil`和零值有显著区别。`nil`用于表示指针、通道等类型的“无”或“不存在”,而零值是类型的默认值,如数字的0,字符串的`''`。`nil`常用于未初始化的变量或错误处理,零值用于提供初始值和避免未初始化的使用。理解两者差异能提升代码质量和稳定性。
|
6月前
|
Go 开发者
Golang深入浅出之-Go语言项目构建工具:Makefile与go build
【4月更文挑战第27天】本文探讨了Go语言项目的构建方法,包括`go build`基本命令行工具和更灵活的`Makefile`自动化脚本。`go build`适合简单项目,能直接编译Go源码,但依赖管理可能混乱。通过设置`GOOS`和`GOARCH`可进行跨平台编译。`Makefile`适用于复杂构建流程,能定义多步骤任务,但编写较复杂。在选择构建方式时,应根据项目需求权衡,从`go build`起步,逐渐过渡到Makefile以实现更高效自动化。
94 2