在 CentOS 上用 Golang 编译时,通常通过 go build 命令配合环境变量和参数来配置。下面按常见场景给你说明。
go build main.go
或(在模块目录下):
go build
生成的可执行文件名默认是目录名或 main。
go build -o myapp
GOOS=linux GOARCH=amd64 go build -o myapp
GOOS=windows GOARCH=amd64 go build -o myapp.exe
GOOS=darwin GOARCH=arm64 go build -o myapp
避免依赖 glibc 版本不同导致运行失败:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp
如果是 纯 Go 项目,强烈建议加 CGO_ENABLED=0。
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
# 静态编译 Linux amd64
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -ldflags "-s -w" -o myapp main.go
go env
重点关注:
GOOSGOARCHCGO_ENABLEDGOPROXY如果你有具体场景(如:CentOS 7、内网环境、Docker、ARM 服务器),可以告诉我,我可以给你针对性编译命令。