在 Ubuntu 下用 Golang 编译生成一个可直接运行的二进制可执行文件,方法非常简单,下面按常见场景说明。
go version
如果没有安装:
sudo apt update
sudo apt install golang-go
例如:
// main.go
package main
import "fmt"
func main() {
fmt.Println("Hello Ubuntu!")
}
go build main.go
执行后会在当前目录生成:
main
运行:
./main
✅ 这是一个 Ubuntu 下可直接运行的可执行文件。
go build -o myapp main.go
运行:
./myapp
GOOS=linux GOARCH=amd64 go build -o myapp main.go
常见参数说明:
| 参数 | 说明 |
|---|---|
| GOOS | 目标操作系统(linux / windows / darwin) |
| GOARCH | 架构(amd64 / arm64) |
GOOS=windows GOARCH=amd64 go build -o myapp.exe main.go
⚠️ 生成的是 Windows 可执行文件,Ubuntu 下不能直接运行。
GOOS=darwin GOARCH=amd64 go build -o myapp-mac main.go
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp main.go
✅ 好处:
go install
可执行文件会生成在:
$HOME/go/bin/
permission deniedchmod +x myapp
./myapp
.go 文件✅ 直接:
go build
✅ 或者:
go build ./...
file myapp
示例输出:
myapp: ELF 64-bit LSB executable, x86-64
✅ Ubuntu 本地可执行文件
go build -o app main.go
✅ 发布用(推荐)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app main.go
如果你有 具体场景(如 Gin / Beego / 要打包成 Docker、systemd 服务、ARM 服务器),可以告诉我,我给你更精准的方案。