1. 环境变量配置
/usr/local/go),用于定位编译器及标准库。若通过官方二进制包安装,默认路径即为/usr/local/go,无需额外修改。$HOME/go),包含src(源码)、pkg(编译后的库文件)、bin(可执行文件)三个子目录。需确保该目录存在且有写入权限。$GOROOT/bin)和工作空间的bin目录($GOPATH/bin)添加到PATH中,实现全局调用go命令及第三方工具(如golangci-lint)。on(启用Go Modules,官方推荐的依赖管理工具,避免GOPATH的局限性)。https://goproxy.cn,direct,国外可使用https://proxy.golang.org)。2. 交叉编译配置
GOOS(目标操作系统)和GOARCH(目标架构)指定编译目标,如GOOS=linux(Linux系统)、GOARCH=amd64(64位x86架构)、GOARCH=arm(ARM架构,如树莓派)。GOARM(ARM版本),如GOARM=7(ARMv7架构,兼容大多数树莓派型号)。CGO_ENABLED=0,生成纯Go静态二进制文件(无需目标系统安装Go运行时或C库);若必须使用Cgo,需安装对应平台的交叉编译工具链(如gcc-arm-linux-gnueabihf用于ARM Linux),并通过CC(C编译器路径)、CXX(C++编译器路径)指定工具链路径。3. 依赖管理配置
go mod init <module-name>(如go mod init github.com/user/project)初始化模块,生成go.mod文件(记录模块名称及依赖版本)。go get <module-path>@<version>(如go get github.com/gin-gonic/gin@v1.9.1)添加依赖,或执行go mod tidy自动整理依赖(移除未使用的依赖、添加缺失的依赖)。go mod vendor,生成vendor目录(包含所有依赖的源码),编译时通过-mod=vendor参数使用该目录的依赖。4. 编译选项优化
-o参数指定生成的可执行文件名(如go build -o myapp),避免默认使用目录名。-v参数输出详细编译信息(如编译的包名称),便于排查问题。-a参数强制重新编译所有包(即使未修改),适用于依赖库更新后的场景。-ldflags参数去除符号表及调试信息,减小文件体积(如-ldflags="-s -w",-s去除符号表,-w去除DWARF调试信息)。5. 常见问题排查
chmod +x <executable-file>添加可执行权限。go.mod文件中的依赖版本是否正确,或执行go mod tidy修复。CGO_ENABLED、CC、CXX)及交叉编译工具链是否安装。libssl.so),需安装对应依赖(如sudo apt install libssl-dev),或使用静态编译(CGO_ENABLED=0)避免动态库依赖。