温馨提示×

golang编译ubuntu依赖哪些

小樊
42
2026-10-13 03:51:45
栏目: 编程语言

在 Ubuntu 上编译 Go(Golang)程序,依赖可以分为两类:编译 Go 工具链本身 和 编译 Go 程序(你的代码)。


一、编译 Go 程序(最常见情况)

如果你只是用已安装的 go 命令编译自己的 Go 代码:

1️⃣ 基本依赖(必须)

sudo apt update
sudo apt install -y golang-go

或安装官方版本(推荐):

wget https://go.dev/dl/go1.22.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.linux-amd64.tar.gz

2️⃣ 编译普通 Go 程序

✅ 一般不需要额外系统依赖

  • Go 是静态编译语言
  • 默认生成静态可执行文件
go build main.go

二、使用 CGO 时的依赖(重要)

如果你的代码或依赖中使用了:

import "C"

或依赖:

  • SQLite
  • OpenSSL
  • 某些驱动、图像库

那就需要 C 编译器和系统库

安装 CGO 依赖

sudo apt install -y \
  build-essential \
  gcc \
  libc6-dev

常见额外库(按需要):

libssl-dev
libsqlite3-dev
zlib1g-dev

三、交叉编译(在 Ubuntu 上编译其他平台)

不需要额外依赖,但要指定环境变量:

GOOS=windows GOARCH=amd64 go build
GOOS=linux GOARCH=arm64 go build

✅ 不需要目标平台系统库


四、从源码编译 Go 语言本身(不常见)

如果你想自己编译 Go 源码:

sudo apt install -y \
  git \
  gcc \
  make \
  bison

然后:

git clone https://go.googlesource.com/go
cd go/src
./make.bash

五、常见场景总结

场景 是否需要系统依赖
纯 Go 程序 ❌ 不需要
使用 CGO ✅ gcc + 开发库
交叉编译 ❌ 不需要
编译 Go 源码 ✅ 编译工具链

如果你能说明:

  • 是 编译 Go 程序 还是 编译 Go 语言本身
  • 是否使用 CGO / SQLite / 网络库

我可以给你更精确的依赖清单。

0 踩