Linux上搭建百度brpc框架

由于平常用的rpc都是用thrift,百度开源brpc后想知道两者的差异是什么,所以就急切的从github上下载研究研究,发现文档写的是真的好~~当然还有里面的例子。研究了几天后,想搭好环境实现一波,搭好之后想把过程遇到的坑分享出来~
随便说下,我的是centos7的版本,ubutun也差不多。
一、brpc依赖三个开源库:是gflags,protobuf和leveldb。gflags是用于像Linux命令行那样指定参数的,protobuf用于序列和反序列化以及它的 rpc定义。leveldb用来压缩的。
1:安装gflags。使用命令 git clone https://github.com/gflags/gflags.git 下载好源文件,cd进入目录。然后根据以下步骤:

     mkdir build && cd build
     cmake ..
     make 
     make install

这里会有一个问题,这样生成的gflags库是生成静态库,即libgflags.a和libgflags_nothreads.a,但编译brpc时需要的是gflags的动态库!用静态库编译brpc会出现以下错误(stackoverflow上还说下述这种错误是因为命名空间改了的原因):

/usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libgflags.a: error adding symbols: Bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)

所以需要把gflags生成动态库!生成动态库的方法从网上找了很久,几乎都是说上面那种方法但我一直生成不了动态库,最后找到了一个方法,可以生成gflags动态库和更改命名空间,解决!:

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值