linux x86_64 下编译grpc总结

在无法联网的Linux x86_64环境下,编译grpc库需要手动下载依赖并解决GCC版本问题。遇到的错误包括'unrecognized command line option ‘-mfloat-abi=hard’',通过升级GCC至9.3.0解决。由于公司使用的是grpc 1.22.1,启动后服务端卡死,经排查发现是已知bug,通过修改源码并重新编译解决。编译完成后,理解Makefile进行安装,头文件、库文件、插件等安装到相应系统目录。
摘要由CSDN通过智能技术生成

grpc库的编译需要依赖多个三方库,官方建议通过./.gitmodules去获取依赖库,但我的linux环境是不能联网的,必须离线安装。

查看./.gitmodules文件,其实是去github把代码拉取到gprc的thirdparty/对应的目录下,具体如下

将编译过程中缺少的三方库在windows下载好,拷贝至对应的目录即可

编译过程中会报错unrecognized command line option ‘-mfloat-abi=hard’,上网上搜索原因为GCC版本高于4.8,而这行命令在新的GCC中已去掉了,我的当前版本为4.8.5,然而我还是升级到了9.3.0,最后编译成功;

另外我们公司使用的grpc版本为1.22.1

我的服务端启动后卡死,pstack查看具体原因,原来卡死在grpc_tracer_init()函数内,cpu占用100%,查看grpc的issue发现这是一个已解决bug(当前最新为1.27.0版本)但我们的gcc不支持编译(当前grpc要求gcc版本最低为4.8.9),因此只能按照此issue的方式修改grpc源码,重新编译,具体方式如下:

https://github.com/joda01/grpc/commit/3a54951b546424a930dafc5006

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值