Linux上搭建百度brpc框架

本文介绍了在CentOS7系统上搭建百度brpc框架的详细步骤,包括安装gflags、protobuf和leveldb的动态库,并解决编译过程中遇到的问题。在安装gflags时,由于需要生成动态库以避免命名空间错误,作者提供了一种解决方案。接着,顺利安装protobuf和leveldb。完成依赖库的搭建后,成功编译brpc并展示了如何使用echo_c++示例进行客户端和服务端的运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于平常用的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动态库和更改命名空间,解决!:

mkdir build 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值