许多刚接触 Go 语言的开发者都会好奇:编译生成的可执行文件到底存放在哪里?这个问题虽然看似简单,但在不同操作系统和开发习惯下,实际输出位置确实存在一些差异。首先明确结论:在默认情况下,go build 命令会将编译后的可执行文件直接输出到当前工作目录——也就是你执行该命令所在的文件夹。
举例来说,假设你的 Go 源文件名为 main.go,存放在 /home/user/go/src/myapp 路径下。打开终端,切换至该目录,输入 go build 并执行。编译完成后,你会在当前目录中发现一个名为 myapp 的可执行文件(在 Windows 系统中则显示为 myapp.exe)。整个过程简洁直接,无需任何额外配置。

当然,在实际开发过程中,开发者往往不希望将可执行文件与源代码混杂在一起。此时 -o 参数便派上了用场。例如,你想将所有编译产物统一存放到 /home/user/go/bin 目录中,只需按如下方式编写命令:
go build -o /home/user/go/bin/myapp
这样一来,可执行文件便会按照你指定的路径输出。顺带提醒一点:如果你计划将编译后的程序复制到其他机器上运行,有两项前提需要提前确认。第一,目标系统的架构必须与你的编译环境保持一致(例如,不要在 AMD64 架构的机器上编译出面向 ARM 架构的可执行文件);第二,目标机器上必须安装对应版本的 Go 运行时环境——不要误以为编译成二进制文件后就完全独立,一些潜在的环境依赖仍需提前规避。
