插件窝 干货文章 Golang如何在Linux上编译

Golang如何在Linux上编译

Go 编译 安装 main 903    来源:    2025-05-10

在 Linux 上编译 Go 程序可以分为以下几个步骤:

1. 安装 Go 环境

首先确保你的 Linux 系统已经安装了 Go。如果没有安装,可以按照以下步骤安装:

从官方下载安装

# 下载最新版本的 Go (替换为最新版本号)
wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz

# 解压到 /usr/local
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz

# 将 Go 添加到 PATH 环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

# 验证安装
go version

使用包管理器安装 (如 apt/yum)

# Ubuntu/Debian
sudo apt update
sudo apt install golang

# CentOS/RHEL
sudo yum install golang

2. 编写 Go 程序

创建一个简单的 Go 程序,例如 main.go

package main

import "fmt"

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

3. 编译 Go 程序

在 Linux 上编译 Go 程序有几种方式:

基本编译

go build main.go

这会生成一个与当前系统架构匹配的可执行文件(默认为当前目录下的 main

指定输出文件名

go build -o myapp main.go

跨平台编译

Go 支持交叉编译,可以为其他平台生成可执行文件:

# 编译为 Linux 64 位
GOOS=linux GOARCH=amd64 go build -o myapp-linux main.go

# 编译为 Windows
GOOS=windows GOARCH=amd64 go build -o myapp.exe main.go

# 编译为 MacOS
GOOS=darwin GOARCH=amd64 go build -o myapp-macos main.go

4. 运行程序

./main
# 或
./myapp

5. 安装依赖

如果你的项目有依赖,可以使用:

go mod init <module-name>
go mod tidy

6. 构建优化

# 禁用调试信息,减小二进制大小
go build -ldflags="-s -w" -o myapp main.go

# 完全静态编译(不依赖 glibc)
CGO_ENABLED=0 go build -a -installsuffix cgo -o myapp main.go

7. 使用 Makefile (可选)

对于复杂项目,可以创建 Makefile:

build:
    go build -o bin/myapp cmd/main.go

clean:
    rm -f bin/myapp

.PHONY: build clean

常见问题解决

  1. 找不到 go 命令

    • 确保 Go 已安装且 PATH 设置正确
    • 运行 source ~/.bashrc 或重新登录
  2. 权限问题

    • 使用 chmod +x 给可执行文件添加权限
  3. 依赖问题

    • 确保设置了正确的 GOPATH 或使用 Go Modules
  4. CGO 相关问题

    • 如需静态编译,使用 CGO_ENABLED=0
    • 如需 CGO,确保安装了 gcc

通过以上步骤,你应该能够在 Linux 上成功编译 Go 程序。Go 的编译过程非常高效,通常只需几秒钟即可完成。