商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu Golang打包生成的文件在哪里

Ubuntu Golang打包生成的文件在哪里

  发布于2026-07-06 阅读(0)

扫一扫,手机访问

在Ubuntu上用Go语言写项目,编译打包后生成的可执行文件到底跑哪去了?这是新手经常遇到的问题。其实答案并不复杂,取决于你用哪个命令、有没有加参数。

先说几个核心判断

go build编译时,如果没指定输出路径,可执行文件就直接生成在当前工作目录下,文件名默认和包目录名一致——比如你在项目根目录执行go build,出来的二进制就和项目目录同名。而用go install的话,二进制会被安装到$GOPATH/bin,前提是你没设置$GOBIN;如果设了,就进$GOBIN

别急,我把最常见的几种情况整理成了表格,一眼就能看明白。

Ubuntu Golang打包生成的文件在哪里

命令或用法生成位置示例
go build(无 -o当前工作目录/home/user/myapp 执行后生成 /home/user/myapp
go build -o <路径/文件名>你指定的路径go build -o bin/myapp 生成项目根目录下的 bin/myapp
go install$GOPATH/bin$GOBINGOPATH=$HOME/go,则生成 $HOME/go/bin/
脚本或 Makefile 自定义脚本中 -o 指定的目录例如 Makefile 中 OUTPUT_NAME=myappBUILD_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
本文转载于:https://www.yisu.com/ask/88689830.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注