在 CentOS 上编译 Go 代码的标准流程
一 准备环境
sudo yum install -y golangsudo dnf install -y golangwget https://golang.org/dl/go1.22.6.linux-amd64.tar.gz(请选择适合系统的版本)sudo tar -C /usr/local -xzf go1.22.6.linux-amd64.tar.gz/etc/profile.d/golang.sh)
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile.d/golang.shgo version 应输出版本号,如:go1.22.6 linux/amd64。二 准备代码
go mod init example/hellomain.go:package main
import "fmt"
func main() {
fmt.Println("Hello, CentOS")
}
mkdir -p $GOPATH/src/hello && cd $GOPATH/src/hellohello.go(同上),保持包名为 package main。三 编译与运行
go build -o hello main.go(或 go build .)go run main.gogo install(在含有 package main 的模块根目录执行),生成的可执行文件位于 $GOPATH/bingo build -o myapp main.gogo build -ldflags "-s -w" -o hello main.gogo build -v main.go./hello 应输出 Hello, CentOS。四 交叉编译与分发
GOOS=linux GOARCH=amd64 go build -o hello-linux main.goGOOS=windows GOARCH=amd64 go build -o hello.exe main.goGOOS=darwin GOARCH=amd64 go build -o hello-darwin main.goGOOS=linux GOARCH=arm GOARM=7 go build -o hello-arm main.go五 常见问题与实用建议
source /etc/profile.d/golang.sh 或重新登录;确认 go version 正常。-ldflags "-s -w" 去除符号与调试信息;需要调试时保留调试信息或使用 go build -v 查看构建细节。