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 目录下
相关文章
|
Go 调度 开发者
[go 面试] 深入理解进程、线程和协程的概念及区别
[go 面试] 深入理解进程、线程和协程的概念及区别
|
并行计算 数据挖掘 大数据
[go 面试] 并行与并发的区别及应用场景解析
[go 面试] 并行与并发的区别及应用场景解析
|
6月前
|
存储 Go
Go中make和new的区别
在 Go 语言中,`make` 和 `new` 都用于分配内存,但功能不同。`make` 用于初始化切片、映射和通道,并返回初始化后的对象;`new` 分配内存并返回指向零值的指针,适用于任何类型。`make` 返回的是数据结构本身,而 `new` 返回指针。`make` 完整初始化特定数据结构,`new` 只初始化为零值。
198 0
|
10月前
|
存储 Rust Go
Go nil 空结构体 空接口有什么区别?
本文介绍了Go语言中的`nil`、空结构体和空接口的区别。`nil`是预定义的零值变量,适用于指针、管道等类型;空结构体大小为0,多个空结构体实例指向同一地址;空接口由`_type`和`data`字段组成,仅当两者均为`nil`时,空接口才为`nil`。
220 1
Go nil 空结构体 空接口有什么区别?
|
Unix 编译器 Go
|
存储 Go 数据处理
C 数组和 Go 切片的区别详解
【8月更文挑战第31天】
115 0
Go 中 NEW 和 MAKE 的区别
Go 中 NEW 和 MAKE 的区别
179 6
|
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.【已解决】
227 3
|
Go 开发者
Golang深入浅出之-Go语言项目构建工具:Makefile与go build
【4月更文挑战第27天】本文探讨了Go语言项目的构建方法,包括`go build`基本命令行工具和更灵活的`Makefile`自动化脚本。`go build`适合简单项目,能直接编译Go源码,但依赖管理可能混乱。通过设置`GOOS`和`GOARCH`可进行跨平台编译。`Makefile`适用于复杂构建流程,能定义多步骤任务,但编写较复杂。在选择构建方式时,应根据项目需求权衡,从`go build`起步,逐渐过渡到Makefile以实现更高效自动化。
345 2