1.安装go环境
Downloads - The Go Programming Language
配置环境变量
export GO111MODULE=on
export GOPRIVATE=github.com
export GOPROXY=https://goproxy.cn,direct
export PATH=$PATH:/home/go/go/bin
2.下载go项目源码
https://github.com/elastic/beats
关于go项目工程依赖的模块,建议提前下载完成之后,再传输到服务器上进行编译;设置GO_PATH环境变量
git clone https://github.com/elastic/beats.git
以编译 elastic beats为例
3.编译arm程序
配置环境变量:arm-linux-gcc所在目录
export PATH=$PATH:/home/arm-xxx/bin
cd /root/beats/filebeat
export CGO_CFLAGS=$CGO_CFLAGS" -fuse-ld=bfd"
export CGO_LDFLAGS=$CGO_LDFLAGS" -fuse-ld=bfd"
export GOGCCFLAGS=$GOGCCFLAGS" -fuse-ld=bfd"
export PATH=$PATH:/home/arm-xxx/bin
CGO_ENABLED=1 GOARCH=arm GOOS=linux CC=arm-linux-gcc go build -v
#CGO_ENABLED=1 GOARCH=arm GOOS=linux CC=arm-linux-gcc make
4.编译完成之后上传至arm服务器,测试程序是否能运行
5.项目编译过程中出现的问题
使用arm交叉编译sdk,交叉编译arm时报错如下
因为arm交叉工具SDK,工具链只有ld.bfd
,所以需要设置一下环境变量
export CGO_CFLAGS=$CGO_CFLAGS" -fuse-ld=bfd"
export CGO_LDFLAGS=$CGO_LDFLAGS" -fuse-ld=bfd"
export GOGCCFLAGS=$GOGCCFLAGS" -fuse-ld=bfd"