CentOS 中 Golang 打包后的文件在哪

Ivy
Ivy
发布时间:2026-08-24 | 17人浏览过
原创
Go build 在当前目录与指定目录输出的关系图
Go 可执行文件输出位置示意用一张关系图说明 `go build` 默认输出位置与 `-o` 指定输出路径的差别。

前言

在 CentOS 上执行 `go build` 后,很多人会先疑惑可执行文件到底生成到了哪里。其实判断方法很直接:先看命令执行目录,再看是否使用了 `-o` 指定输出路径。

很多人在 CentOS 上第一次执行 go build 时,都会先去别的目录找生成文件。其实 Go 的默认行为并不复杂:先看当前工作目录,再根据是否使用 -o 判断输出位置。下面直接按“默认输出”和“自定义输出”两种情况说明。

默认会生成到哪里

如果直接执行:

go build main.go

默认会在当前工作目录下生成可执行文件,通常文件名是 main。这也是很多人在 CentOS 里最容易忽略的一点:编译结果并不会自动跑到别的构建目录,而是直接出现在你执行命令的位置。

如果是 Windows,生成的文件则会带上 .exe 后缀,也就是 main.exe。

想放到指定目录怎么办

如果你不想让可执行文件留在当前目录,可以用 -o 指定输出路径,例如:

go build -o /path/to/your/output/main main.go

这样生成的文件就会被写入 /path/to/your/output/,文件名为 main。这个方式适合把构建产物统一放到部署目录、脚本目录或单独的 bin 目录中。

使用 -o 时要注意什么

需要先确认目标目录有写入权限。若目录不存在,或者当前用户无权写入,`go build` 会直接报错,文件也不会成功生成。

因此,判断 Go 打包后的文件在哪,核心就看两点:是否用了 -o,以及命令是在哪个目录下执行的。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表