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

Ubuntu下Golang编译生成的二进制文件存放位置

时间:2026-07-21 06:06
在Ubuntu系统中,使用gobuild默认将二进制文件生成在当前工作目录。通过-o选项可自定义输出路径和文件名,结合GOOS和GOARCH可进行交叉编译。注意输出到系统目录需相应权限,建议将编译产物加入 gitignore。

在Ubuntu系统下使用Golang进行开发时,一个基础但关键的问题就是:Golang编译生成的二进制文件到底存放在哪里?默认情况下,答案很简单——就在你执行go build命令的那个目录里。不过,在实际开发中,我们往往需要更灵活的二进制文件输出控制,比如将可执行文件放到指定路径,或者进行跨平台交叉编译。下面就来详细说说这些Golang编译输出路径的门道。

Ubuntu中Golang编译生成的二进制文件在哪

一、默认输出位置

在Ubuntu系统中,使用go build命令编译Golang项目时,默认会将二进制文件生成在当前工作目录下。这里的“当前工作目录”指执行go build命令时终端所在的目录。举个例子,如果你的项目源码位于/home/user/projects/hello目录,并且你就在这个目录下执行go build,那么编译生成的二进制文件会直接出现在/home/user/projects/hello中。二进制文件的名称默认与项目目录名或main包所在文件名一致——如果项目目录名叫hello,二进制文件就叫hello;如果源文件是main.go,有时会生成main.out,但更常见的是直接取目录名。总之,Golang编译的默认行为就是“原地生成”,简单直接。

二、自定义输出路径的方法

如果需要把二进制文件放到指定目录,或者想换个文件名,用go build-o(output)选项就能搞定。基本格式是:go build -o <输出路径/文件名> <源文件或包路径>。下面看几个典型的Golang编译输出路径场景。

  • 示例1:指定目录和文件名 想把二进制文件输出到/usr/local/bin目录,并命名为myapp,命令是:go build -o /usr/local/bin/myapp main.go。执行后二进制文件会保存在/usr/local/bin/myapp。注意,这需要当前用户对/usr/local/bin有写入权限,否则得用sudo提升权限。
  • 示例2:输出到项目内的bin目录 为了保持项目结构整洁,推荐在项目根目录下建一个bin文件夹专门存放编译产物。然后这样操作:go build -o bin/myapp ./cmd/server。这会把./cmd/server包编译出的可执行文件保存到bin文件夹里。记得提前创建好bin目录(mkdir -p bin)。
  • 示例3:跨平台编译并自定义输出 假如你在Ubuntu上想编译一个Windows可执行文件,可以结合GOOS(目标操作系统)、GOARCH(目标架构)环境变量和-o选项。例如:GOOS=windows GOARCH=amd64 go build -o bin/myapp.exe ./main.go。这样就会生成Windows平台的myapp.exe,并保存到项目根目录下的bin中,实现Golang跨平台编译。

三、注意事项

  • 权限问题:如果把二进制文件输出到系统目录(比如/usr/local/bin),务必确保当前用户有足够权限。通常的做法是加sudo,比如sudo go build -o /usr/local/bin/myapp main.go
  • 版本控制:Golang编译产物(二进制文件)通常不应该被提交到Git仓库。建议把bin目录添加到.gitignore文件中,比如加上一行bin/,这样仓库里只保留源码,干净清爽。
来源:https://www.yisu.com/ask/87314477.html
上一篇Ubuntu系统中Go语言编译参数汇总 下一篇Java中InputStream的markSupported mark reset实现流重复读取
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

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

同类最新

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

更多
FileZilla断点续传设置与操作指南
编程语言 · 2026-07-25

FileZilla断点续传设置与操作指南

FileZilla支持断点续传,需客户端与服务器均开启REST命令。设置中确保启用断点续传及继续传输选项。中断后自动或手动从断点恢复。注意服务器支持、传输模式匹配及文件完整性校验。

Debian系统C++编译器位置查找方法
编程语言 · 2026-07-25

Debian系统C++编译器位置查找方法

在Debian系统中,通过apt安装的C++编译器g++默认位于 usr bin g++,可使用which或whereis命令验证路径。g++属于build-essential软件包,若未安装则需执行sudoaptinstallbuild-essential。该包还包含gcc、make等编译工具链,g++是GNUC++编译器,实际是符号链接指向具体版本,验证

Debian系统安装C++环境的方法
编程语言 · 2026-07-25

Debian系统安装C++环境的方法

在Debian系统安装C++开发环境:先sudoaptupdate更新包列表,再sudoaptinstallbuild-essential安装编译工具链,或单独安装g++。用g++--version验证。可选安装VSCode、GDB、CMake等工具并配置默认编译器版本。

Debian系统C++开发环境配置指南
编程语言 · 2026-07-25

Debian系统C++开发环境配置指南

在Debian系统中,先执行aptupdate更新软件包列表,再安装build-essential元包即可获得GCC、G++、Make和GDB。通过运行g++--version命令验证编译器安装成功。可选安装VisualStudioCode、CLion等编辑器及CMake构建工具,并编写一个简单的HelloWorld程序,使用g++编译运行以验证环境配置正确

通过cpustat工具查看CPU状态的具体方法与详细步骤
编程语言 · 2026-07-25

通过cpustat工具查看CPU状态的具体方法与详细步骤

cpustat是sysstat包中的CPU监控工具,可按固定间隔输出带时间戳的CPU使用率统计。安装后运行cpustat即可实时显示各核心信息,常用指标包括%usr、%sys、%iowait、%steal和%idle,用于定位用户态、内核态或I O瓶颈。高级选项-c可显示单核统计,-m可同时查看内存使用,适合脚本采集和性能分析。