温馨提示×

Ubuntu如何用Golang打包生成可执行文件

小樊
35
2026-06-30 20:18:30
栏目: 编程语言

Ubuntu 下用 Golang 编译生成一个可直接运行的二进制可执行文件,方法非常简单,下面按常见场景说明。


一、最基础的打包方式(生成当前平台可执行文件)

1. 确认 Go 已安装

go version

如果没有安装:

sudo apt update
sudo apt install golang-go

2. 编写一个 Go 程序

例如:

// main.go
package main

import "fmt"

func main() {
    fmt.Println("Hello Ubuntu!")
}

3. 编译生成可执行文件

go build main.go

执行后会在当前目录生成:

main

运行:

./main

✅ 这是一个 Ubuntu 下可直接运行的可执行文件


二、指定输出文件名

go build -o myapp main.go

运行:

./myapp

三、打包为 Linux 可执行文件(交叉编译)

1. 编译为 Ubuntu/Linux 可执行文件

GOOS=linux GOARCH=amd64 go build -o myapp main.go

常见参数说明:

参数 说明
GOOS 目标操作系统(linux / windows / darwin)
GOARCH 架构(amd64 / arm64)

四、打包为 Windows 可执行文件(.exe)

GOOS=windows GOARCH=amd64 go build -o myapp.exe main.go

⚠️ 生成的是 Windows 可执行文件,Ubuntu 下不能直接运行。


五、打包为 macOS 可执行文件

GOOS=darwin GOARCH=amd64 go build -o myapp-mac main.go

六、禁用 CGO(推荐用于纯 Go 程序)

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp main.go

✅ 好处:

  • 不依赖系统 C 库
  • 更适合 Docker / 服务器部署

七、使用 go install(安装到 GOPATH/bin)

go install

可执行文件会生成在:

$HOME/go/bin/

八、常见问题

1. 编译后提示 permission denied

chmod +x myapp
./myapp

2. 项目有多个 .go 文件

✅ 直接:

go build

✅ 或者:

go build ./...

3. 查看可执行文件信息

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 服务器),可以告诉我,我给你更精准的方案。

0