在 Go 中,go build 生成的 .exe 文件名主要由以下因素决定(按优先级排序):

  1. -o 显式指定(最高优先级):

    go build -o custom_name.exe

    会直接生成 custom_name.exe

  2. 模块的 module 声明(当在模块目录下时):
    go.mod 文件中的模块名决定:

    module github.com/user/project

    会生成 project.exe

  3. 目录名(当不在模块中或模块名是路径时):
    如果当前目录是 myapp,会生成 myapp.exe

  4. main 文件名(最低优先级,极少用):
    如果编译单个文件如 main.go,会生成 main.exe

特殊说明:

  • 在 Windows 系统会自动加 .exe 后缀
  • 如果模块名包含路径(如 github.com/user/project),只取最后一段(project
  • 使用 go install 时会根据 GOPATH/binGOBIN 生成对应名称

建议通过 go build -o 显式控制输出文件名,这是最可靠的方式。