Ubuntu Golang打包生成的文件在哪里
作者:WeekendFlower
时间:2026-07-06
浏览:3
在Ubuntu上使用Go编译,可执行文件位置取决于命令和参数。`gobuild`不带`-o`则生成在当前工作目录,文件名与包名一致;`goinstall`生成在`$GOPATH/bin`或`$GOBIN`;`-o`可指定任意路径。通过`ls`、`goenvGOPATH`或`find`可快速定位。
本文目录
在Ubuntu上用Go语言写项目,编译打包后生成的可执行文件到底跑哪去了?这是新手经常遇到的问题。其实答案并不复杂,取决于你用哪个命令、有没有加参数。
先说几个核心判断
用go build编译时,如果没指定输出路径,可执行文件就直接生成在当前工作目录下,文件名默认和包目录名一致——比如你在项目根目录执行go build,出来的二进制就和项目目录同名。而用go install的话,二进制会被安装到$GOPATH/bin,前提是你没设置$GOBIN;如果设了,就进$GOBIN。
别急,我把最常见的几种情况整理成了表格,一眼就能看明白。

| 命令或用法 | 生成位置 | 示例 |
|---|---|---|
go build(无 -o) | 当前工作目录 | 在 /home/user/myapp 执行后生成 /home/user/myapp |
go build -o <路径/文件名> | 你指定的路径 | go build -o bin/myapp 生成项目根目录下的 bin/myapp |
go install | $GOPATH/bin 或 $GOBIN | 若 GOPATH=$HOME/go,则生成 $HOME/go/bin/ |
| 脚本或 Makefile 自定义 | 脚本中 -o 指定的目录 | 例如 Makefile 中 OUTPUT_NAME=myapp,BUILD_TARGET=$(PROJECT_PATH)/bin/$(OUTPUT_NAME),则生成项目根目录的 bin/myapp |
以上行为由 -o 参数与安装规则决定,脚本/Makefile 只是把路径固化。 | ||
快速定位与验证
如果你刚编译完,发现找不到文件在哪里,可以试试这几个方法:
- 先运行
pwd看看当前工作目录;然后在当前目录下用ls -l查看有没有刚生成的可执行文件。 - 查一下 Go 的安装路径和二进制目录:执行
go env GOPATH拿到$GOPATH,然后检查$GOPATH/bin里是否出现了你的二进制。 - 实在找不到,就用全局搜索:
sudo find / -type f -name "myapp" -executable 2>/dev/null(记得把myapp换成你实际生成的文件名)。
常用命令示例
掌握了位置规律,再来看几个常用命令,这样你就能灵活控制了:
- 在当前目录生成二进制:
go build - 指定输出目录与名称:
go build -o bin/myapp - 安装到 GOPATH/bin:
go install - 交叉编译 Linux amd64 并输出到指定目录:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o dist/myapp - 使用 Makefile 输出到项目 bin 目录:在 Makefile 中设定
BUILD_TARGET=./bin/myapp并执行make build。
作者最新文章
SQL条件逻辑转换:CASE WHEN语句在数据分类中的应用
2026-10-13 16:41
漫蛙官网入口最新版本下载
2026-10-13 13:19
漫蛙动漫最新版本app下载安装
2026-10-13 13:18
漫蛙APP下载安装免费版
2026-10-13 13:18
漫蛙漫画登录入口免费漫画在线阅读苹果版
2026-10-13 13:17
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































