温馨提示×

centos golang编译如何配置参数

小樊
46
2026-10-08 18:02:47
栏目: 编程语言

在 CentOS 上用 Golang 编译时,通常通过 go build 命令配合环境变量和参数来配置。下面按常见场景给你说明。


一、基础编译(默认)

go build main.go

或(在模块目录下):

go build

生成的可执行文件名默认是目录名或 main。


二、指定输出文件名

go build -o myapp

三、交叉编译(CentOS 上很常用)

1️⃣ 编译 Linux 可执行文件(CentOS 本身)

GOOS=linux GOARCH=amd64 go build -o myapp

2️⃣ 编译 Windows 程序

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

3️⃣ 编译 macOS

GOOS=darwin GOARCH=arm64 go build -o myapp

四、CentOS 常见编译参数

✅ 静态编译(推荐在 CentOS 使用)

避免依赖 glibc 版本不同导致运行失败:

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

如果是 纯 Go 项目,强烈建议加 CGO_ENABLED=0。


✅ 开启 CGO(调用 C 库)

CGO_ENABLED=1 go build -o myapp

需要确保已安装:

yum install -y gcc glibc-devel

五、编译优化参数

减小二进制体积

go build -ldflags "-s -w" -o myapp

说明:

  • -s:去掉符号表
  • -w:去掉调试信息

设置版本信息(推荐)

go build -ldflags "-X main.version=1.0.0" -o myapp

代码中:

package main

var version string

六、开启编译缓存 & 并发

Go 默认已开启,可手动控制:

go build -p 4

七、CentOS 常用完整示例

# 静态编译 Linux amd64
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -ldflags "-s -w" -o myapp main.go

八、查看编译环境

go env

重点关注:

  • GOOS
  • GOARCH
  • CGO_ENABLED
  • GOPROXY

如果你有具体场景(如:CentOS 7、内网环境、Docker、ARM 服务器),可以告诉我,我可以给你针对性编译命令。

0 踩