编译arm版本open-falcon的agent模块
arm版本交叉编译,在进行arm版本的open-falcon版本时发现,arm版本的没有gpu采集功能,如果代码中携带gpu功能的模块或采集函数会报错,根据报错信息和代码查询得知open-falcon中引用的gpu的库是intel的
所以只能把gpu相关的代码移除才能编译成功(我的编译环境为vmware centos7 go1.13版本),如果在开源代码0.2.2版本中你没有添加gpu采集功能则可不用去除相关代码,直接编译即可,步骤如下:
1、进入agent模块代码目录
cd /home/centos/go/src/github.com/open-falcon/modules/agent
2、将代码中周期采集gpu的功能注释掉
vim funcs/funcs.go +93
3、将agent模块中gpu相关代码删除或移动到其他地方备份
rm funcs/gpu.go -f
rm /home/centos/go/src/github.com/mindprince/gonvml -f
rm /home/centos/go/src/github.com/open-falcon/vendor/github.com/mindprince/gonvml -f
4、开始执行编译命令
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build
或
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build