Ubuntu Golang打包生成的文件在哪里
导读:默认位置 使用 go build 在 Ubuntu 上编译时,若未指定输出路径,可执行文件会生成在当前工作目录,文件名默认与包目录名或你执行的包路径一致(例如项目根目录执行 go build,则生成与项目目录同名的二进制)。使用 go i...
默认位置
- 使用 go build 在 Ubuntu 上编译时,若未指定输出路径,可执行文件会生成在当前工作目录,文件名默认与包目录名或你执行的包路径一致(例如项目根目录执行 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。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Golang打包生成的文件在哪里
本文地址: https://pptw.com/jishu/749116.html
