golang交叉编译最优解!之前一直使用 linaro工具进行交叉编译,存在一个问题,更换操作系统后,原来的脚本无法正常编译。 使用xgo可避免此问题,但是xgo依赖的docker镜像比较大接近7G
使用 linaro工具进行交叉编译,存在一个问题,更换操作系统后,原来的脚本无法正常编译。使用xgo可避免此问题,虽然xgo依赖的docker镜像比较大接近7G,但是可以避免很多不必要的麻烦 !
xgo项目地址(Github)
一、下载docker镜像
docker pull techknowlogick/xgo:latest
二、下载包装器
官方:为了防止每次都记住一个可能很复杂的 Docker 命令,在其上编写了一个轻量级的 Go 包装器。
go get src.techknowlogick.com/xgo # go >= 1.17执行 go install src.techknowlogick.com/xgo@latest
需要在/etc/profile中配置好GOPATH,否则找不到xgo的bin文件
export GOPATH=/opt/dev/gopath
export PATH=${GOPATH}/bin:$PATH
三、编译 (不需要针对CGO做任何配置)
进入到项目目录执行:
# 编译所有平台版本,默认配置 # xgo . # 只编译arm-7 xgo -ldflags "-w -s" -out app-0.1 --targets=linux/arm-7 .
- . 代表当前目录,
- -ldflags "-w -s" 优化文件大小
- xgo 更多参数: xgo -h
发表评论