Ubuntu操作系统中Golang编译二进制文件默认存放路径
Ubuntu中Go语言编译路径因安装方式而异。Go根目录(GOROOT)即安装目录,可用goenvGOROOT查询。执行gobuild命令将可执行文件生成至当前目录,执行goinstall命令则生成至Go路径(GOPATH)下的bin子目录。Go路径默认位于$HOME go,Go二进制目录(GOBIN)未指定时与Go路径相同。利用goenv可快速查看这些路径
很多刚接触 Go 语言开发的朋友,在 Ubuntu 系统上配置开发环境时,常常被几个路径搞得一头雾水。编译完成后,生成的可执行文件究竟存放在哪里?安装好 Go 之后,它的根目录又该怎么找?这些看似基础的问题,一旦理清,日常写代码就会顺畅许多。今天我们就专门聊聊 Ubuntu 下 Go 语言相关的几个核心路径,看完之后保证你对它们了如指掌。
GOROOT:Go 语言自身的安装根目录
GOROOT 本质上就是 Go 的安装目录。这个具体路径取决于你当初采用哪种方式把 Go 部署到系统中的。
如果你使用的是 sudo apt install golang-go 命令来安装,那么 GOROOT 通常会被放置在 /usr/lib/go。如果你更喜欢手动处理,下载 .tar.gz 压缩包并解压到 /usr/local 目录下(例如执行 sudo tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz),那么 GOROOT 的路径就是 /usr/local/go。
其实你完全不必死记硬背具体位置,在终端里输入一句 go env GOROOT,系统就会直接给出答案。
编译生成的可执行文件:到底存放在哪里?
写好代码并完成编译后,那个可以直接运行的可执行文件究竟去了哪里?这主要取决于你使用的是 go build 还是 go install 命令。
如果你在项目目录下直接执行 go build,那么生成的可执行文件会老老实实地留在当前目录下,文件名通常与项目目录名一致。举个例子,你在 $GOPATH/src/your_project 里执行 go build,那么该目录下就会多出一个名为 your_project 的可执行文件。
那使用 go install 呢?这条命令会规规矩矩地把编译好的可执行文件放到 $GOPATH/bin 目录里。比如你执行 go install github.com/username/project,最终的可执行文件就会出现在 $GOPATH/bin/project。
两个关键环境变量:GOPATH 与 GOBIN
这里需要单独聊聊两个关键角色——GOPATH 和 GOBIN,它们直接决定了你的项目结构以及最终产物的存放位置。
- GOPATH:这是你的工作目录,Go 项目的源代码、编译后的包以及可执行文件都集中在这个“大本营”里。它下面包含三个默认的子文件夹:
src(存放源码)、pkg(存放编译后的包)、bin(存放可执行文件)。GOPATH 的默认路径是$HOME/go,想知道你当前系统上的具体路径,在终端里输入go env GOPATH即可。 - GOBIN:这是一个可选的环境变量,它专门用来指定
go install生成的可执行文件应当放在哪里。如果你没有设置这个变量,系统默认就会使用$GOPATH/bin作为存放位置。当然,你也可以通过export GOBIN=/custom/path/bin这样的命令,手动指定一个你喜欢的自定义路径。
如何快速核查这些路径?
核查方法其实并不复杂,几个简单的命令就能搞定:
- 查看 GOROOT:终端输入
go env GOROOT - 查看 GOPATH:终端输入
go env GOPATH - 查看 GOBIN:终端输入
go env GOBIN(如果没有设置过,这里可能会没有输出)
理解这些路径,本质上就是搞清楚了 Go 语言在 Ubuntu 上“如何安装”和“如何使用”的问题。一旦理清了它们之间的逻辑关系,无论是日常开发还是问题排查,都会顺手很多。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
IDEA中SpringBoot项目热部署实现指南
Springboot项目在IDEA中实现热部署需依次完成:开启自动编译(静态与动态编译)、启用热部署策略、引入spring-boot-devtools依赖、关闭浏览器缓存,最后启动测试即可生效,省去手动重启时间,大幅提升开发效率。
Java实现Excel转JSON的代码详解
使用Java结合FreeSpire XLS库可自动将Excel转为JSON,通过读取工作表并映射为键值对,高效支持数据迁移、报表导出与系统对接,大幅提升效率并消除手动录入错误。
Golang高效布谷鸟过滤器多字符集字符串过滤
布谷鸟过滤器支持删除操作,通过指纹截断与双哈希定位实现多字符集高效过滤。指纹截断需采用fnv64a或xxhash快速哈希并取低8位,桶索引使用独立双哈希避免假阳性。并发安全需以固定数组配合sync atomic实现。
Java使用Poi-tl按Word模板生成动态表格
Poi-tl是Word导出工具,文档周全,支持多级合并表头生成。通过{{text}}、{{?var}}、{{ table}}标签处理模板,传入TableRenderData对象即可动态渲染表格。示例展示用户信息表格生成,并提供工具类消除表格首行缩进,确保格式正确。
Go语言微服务集成Swagger生成交互式API文档完整教程
在Go微服务中集成Swagger常见四大问题:swaginit初始化失败需确保存在packagemain及注释;SwaggerUI加载失败因路由映射错误或未导入docs;@Param注解必须严格遵循格式;部署后接口文档显示localhost因硬编码host,应删除或通过环境变量动态注入。
- 热门数据榜
相关攻略
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:46
2026-07-11 06:46
2026-07-11 06:46
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

