游乐游手机版
首页/编程语言/文章详情

Ubuntu操作系统中Golang编译二进制文件默认存放路径

时间:2026-06-12 06:50
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 部署到系统中的。

Ubuntu系统中Golang编译路径在哪

如果你使用的是 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 上“如何安装”和“如何使用”的问题。一旦理清了它们之间的逻辑关系,无论是日常开发还是问题排查,都会顺手很多。

来源:https://www.yisu.com/ask/41747013.html
上一篇Ubuntu下Golang编译性能提升实用技巧 下一篇Ubuntu中Golang编译的可执行文件位置
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
IDEA中SpringBoot项目热部署实现指南
编程语言 · 2026-07-11

IDEA中SpringBoot项目热部署实现指南

Springboot项目在IDEA中实现热部署需依次完成:开启自动编译(静态与动态编译)、启用热部署策略、引入spring-boot-devtools依赖、关闭浏览器缓存,最后启动测试即可生效,省去手动重启时间,大幅提升开发效率。

Java实现Excel转JSON的代码详解
编程语言 · 2026-07-11

Java实现Excel转JSON的代码详解

使用Java结合FreeSpire XLS库可自动将Excel转为JSON,通过读取工作表并映射为键值对,高效支持数据迁移、报表导出与系统对接,大幅提升效率并消除手动录入错误。

Golang高效布谷鸟过滤器多字符集字符串过滤
编程语言 · 2026-07-11

Golang高效布谷鸟过滤器多字符集字符串过滤

布谷鸟过滤器支持删除操作,通过指纹截断与双哈希定位实现多字符集高效过滤。指纹截断需采用fnv64a或xxhash快速哈希并取低8位,桶索引使用独立双哈希避免假阳性。并发安全需以固定数组配合sync atomic实现。

Java使用Poi-tl按Word模板生成动态表格
编程语言 · 2026-07-11

Java使用Poi-tl按Word模板生成动态表格

Poi-tl是Word导出工具,文档周全,支持多级合并表头生成。通过{{text}}、{{?var}}、{{ table}}标签处理模板,传入TableRenderData对象即可动态渲染表格。示例展示用户信息表格生成,并提供工具类消除表格首行缩进,确保格式正确。

Go语言微服务集成Swagger生成交互式API文档完整教程
编程语言 · 2026-07-11

Go语言微服务集成Swagger生成交互式API文档完整教程

在Go微服务中集成Swagger常见四大问题:swaginit初始化失败需确保存在packagemain及注释;SwaggerUI加载失败因路由映射错误或未导入docs;@Param注解必须严格遵循格式;部署后接口文档显示localhost因硬编码host,应删除或通过环境变量动态注入。