温馨提示×

Golang编译后的二进制文件在哪找

小樊
45
2025-10-03 22:58:18
栏目: 编程语言

Golang编译后二进制文件的默认位置及查找方法

1. 默认输出位置:当前工作目录

使用go build命令编译Go项目时,默认会在当前终端所在的目录生成可执行文件。例如:

  • 若项目目录为/path/to/your/golang/project,执行cd /path/to/your/golang/project && go build后,二进制文件会出现在该目录下。
  • 文件名规则:
    • Linux/macOS系统:与项目目录名或主文件名同名(如项目目录为hello,则文件名为hello);
    • Windows系统:文件名后缀为.exe(如hello.exe)。
      可通过ls(Linux/macOS)或dir(Windows)命令查看当前目录下的文件,确认二进制文件是否存在。

2. 使用-o参数自定义输出路径

若需将二进制文件输出到指定目录或修改文件名,可通过go build-o选项实现。例如:

  • 输出到指定目录并命名:go build -o /path/to/output/binary_name main.go(Linux/macOS);
  • Windows示例:go build -o C:\output\myapp.exe main.go
    执行后,二进制文件会生成在-o指定的路径下,文件名为指定的名称。

3. go install命令的输出位置

go install命令用于编译并安装Go程序,其二进制文件的输出位置由**GOBIN环境变量**决定:

  • 若未设置GOBIN,默认输出到$GOPATH/bin目录($GOPATH为Go的工作目录,通常为~/go%USERPROFILE%\go);
  • 若设置了GOBIN(如export GOBIN=~/custom_bin),则输出到GOBIN指定的目录。
    例如,在项目目录下执行go install后,二进制文件会出现在$GOBIN目录下,文件名为项目目录名(如项目目录为myproject,则文件名为myproject)。

4. 注意事项

  • 跨平台编译:若需生成其他操作系统或架构的二进制文件,需设置GOOS(目标操作系统)和GOARCH(目标架构)环境变量,例如:
    • Linux 64位:GOOS=linux GOARCH=amd64 go build -o linux_binary main.go
    • Windows 64位:GOOS=windows GOARCH=amd64 go build -o windows_binary.exe main.go
      生成的二进制文件仍会遵循上述输出规则(当前目录或-o指定路径)。
  • 权限问题:若将二进制文件输出到系统目录(如/usr/local/bin),可能需要使用sudo命令提升权限(如sudo go build -o /usr/local/bin/binary_name main.go)。

0