以下是在CentOS上编译Go应用的最佳实践:
环境配置
GOROOT、GOPATH和PATH环境变量,推荐通过~/.bashrc或/etc/profile设置并执行source使其生效。go mod init初始化项目,管理依赖时使用go get、go mod tidy等命令。依赖管理
GOPATH的vendor目录管理(除非特殊需求),通过GOPROXY设置国内镜像(如https://goproxy.cn)加速依赖下载。go mod tidy。编译优化
CGO_ENABLED=0生成纯静态二进制文件,避免依赖系统库(适用于无C库环境的服务器)。-p参数指定并行编译的goroutine数量(通常设置为CPU核心数),或通过-j参数启用(部分版本支持)。-ldflags="-s -w"去除符号表和调试信息,减小文件体积。多平台支持
GOOS和GOARCH环境变量进行交叉编译,例如:GOOS=linux GOARCH=amd64 go build -o app-linux-amd64
GOOS=windows GOARCH=amd64 go build -o app-windows-amd64.exe
```。
部署与运维
Dockerfile时基于官方Go镜像,通过COPY和RUN指令构建应用,避免手动配置环境。chmod +x app。性能与调试
pprof工具分析性能瓶颈,优化内存分配和CPU占用。参考来源: