前面介绍了brpc的理解,这里给出brpc官方的搭建过程,以及提供的测试用例,对brpc的使用有一个宏观的理解。

PS:这里必须再次称赞百度工程师门,brpc开源的文档非常的丰富,仅仅是看文档都受益匪浅,同时提供了各个系统,各个版本的安装编译过程,安装编译文档可以通过以下链接直接查看:
https://github.com/brpc/brpc/blob/master/docs/cn/getting_started.md

这里给出本人成功安装编译的过程,供大家参考。

前期准备:
brpc需要依赖三个开源库:是gflags,protobuf和leveldb。gflags是用于像Linux命令行那样指定参数的,protobuf用于序列和反序列化以及它的 rpc定义。leveldb用来压缩的。

安装gflag见博客:google gflags 库完全使用
安装protobuf见博客:Protobuf安装步骤
安装leveldb见博客:Linux上搭建百度brpc框架

1、安装环境

系统是centos7
gcc版本是4.8.5
gflag是2.1.1
cmake是2.8.10
protobuf是3.6.1

2、安装依赖包

这里使用的都是yum直接安装,所以没有yum,请自己先下载yum并安装
安装依赖包的步骤如下:

#CentOS needs to install EPEL generally otherwise many packages are not available by default.
sudo yum install epel-release#Install common deps:
sudo yum install git gcc-c++ make openssl-devel#Install gflags, protobuf, leveldb:
sudo yum install gflags-devel protobuf-devel protobuf-compiler leveldb-devel#If you need to enable cpu/heap profilers in examples:
sudo yum install gperftools-devel#If you need to run tests, install and compile gtest-devel (which is not compiled yet):
sudo yum install gtest-devel

3、下载brpc源代码编译安装

git clone https://github.com/brpc/brpc.git
cd ./brpc/
sh config_brpc.sh --headers=/usr/include --libs=/usr/lib64 --nodebugsymbols
make

4、运行案例

这里百度给出了很多的案例,在git上,可以直接使用,这里使用的最简单的读写例子。
需要注意的是,这里提供了两种编译方式,一种是编译成静态库,一种是编译称为动态库。
百度提供了静态库的makefile,直接make即可,动态库需要加上动态链接标志。

关于动态、静态链接的区别,可以看这篇博客:Linux-动态链接与静态链接对比

静态链接
$ cd example/echo_c++
$ make
$ ./echo_server &
$ ./echo_client
动态链接
$ cd example/echo_c++
$ LINK_SO=1 make
$ ./echo_server &
$ ./echo_client

除此之外,百度还提供了cmake的编译方式,给的案例中包含了cmakelist,我们只需要下载cmake工具,然后让它自己加载源文件,同时生产makefile,最后在编译静态或者动态链接即可。

关于cmake工具的介绍与理解,可以看这篇博客:CMake简介

$ cd example/echo_c++
$ mkdir bld && cd bld && cmake .. && make
$ ./echo_server &
$ ./echo_client

5、结果

6、参考

https://github.com/brpc/brpc/blob/master/docs/cn/getting_started.md
https://blog.csdn.net/breaksoftware/article/details/81564405
https://blog.csdn.net/okiwilldoit/article/details/82144578
https://blog.csdn.net/yinjun66/article/details/78512124?locationNum=4&fps=1

brpc搭建、编译和使用相关推荐

  1. 鸿蒙-HI3516-Docker环境搭建编译烧录

    最新的环境搭建教程请看:https://blog.csdn.net/qq_33259323/article/details/117854579 鸿蒙-HI3516-Docker环境搭建编译烧录 1.环 ...

  2. 超级便宜的鸿蒙开发板环境搭建-编译-烧录

    超级便宜的鸿蒙开发板环境搭建-编译-烧录 1.下载代码.编译工具和烧写工具 打开https://gitee.com/hihopeorg/Neptune-HarmonyOS-IOT下载代码 打开http ...

  3. OAI搭建编译eNB报错

    OAI搭建编译eNB报错 ●错误提示: sudo -E ./lte-softmodem -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/en ...

  4. Openwrt-Chaos_Calmer搭建编译环境问题处理

    openwrt搭建编译环境时的问题处理 版本型号: Ubuntu14.05 OpenWrt-Chaos_Calmer-15.05 1. 在下载源代码之前,先把openwrt的编译环境的搭建起来也就是执 ...

  5. 教你如何搭建编译服务器安装加密系统

    教你如何搭建编译服务器安装加密系统 一.怎么装Ubuntu 16.04? 可以参考博客:U盘安装 Ubuntu 16.04 二.ubuntu降低内核版本 降低内核版本目的是为了安装加密系统软件 可以参 ...

  6. 鸿蒙开发板怎么玩?Neptune开发教程---OpenHarmony开发体验-环境搭建-编译-烧录

    目录 鸿蒙开发板(Neptune)开发教程-环境搭建-编译-烧录 Neptune简介 介绍特点 开发板参数 引脚 说明 开发环境搭建 linux编译环境搭建 python环境安装 hpm环境安装 wi ...

  7. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ① 小白也痴迷,如何在 Linux环境搭建编译烧录 安信可TB02,点亮一盏LED灯;

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小 ...

  8. Android-黄油刀ButterKnife依赖注入源码,APT自动生成代码,利用javapoet语法搭建编译环境,建立MVP中空指针的保护机制

    基本环境搭建(auto&javapoet) 一.API采取背景,举例 主要为了解决客户端MVP架构中,V层和P层生命周期不同步时,生成空View保护性逻辑. 之前需要手写空View的代码,现在 ...

  9. 基于HarmonyOS的WIFI智能冰箱:在Ubuntu下搭建编译环境

    Ubuntu下搭建编译环境 1.首先选择linux的系统.推荐采用ubuntu18.04.2,最新的ubuntu20.01太过酷炫,这个版本稳定时间长,是最可靠的版本. 基本条件是: ①Linux服务 ...

最新文章

  1. oracle 加载数据戽_走进大数据丨 ETL - Load(数据加载)
  2. ASP.NET使用AJAX应注意IIS有没有.ashx扩展
  3. C和C++里面常见错误和异常出现怎么解决总结(不断更新)
  4. 流行编程语言_编程语言的流行度排名
  5. callablestatement存储过程
  6. 敏捷开发系列学习总结(1)——版本管理发布流程
  7. easyui 年份下拉框的构建
  8. jsessionid 在谷歌一直变_谷歌相册也要收费,这次我全靠这些云盘救命
  9. caffemodel中的参数及特征的抽取
  10. IOS错误---“A valid provisioning profile for this executable was not found”
  11. java gbk编码_java中如何得到输入的汉字的GBK编码
  12. 360度全方位超详尽iPhone5s新手入门宝典(上)
  13. 三维模型楼盘展示的功能及优点
  14. 苹果企业证书发布ipa,使用gitee存放plist文件
  15. net logon服务无法启动
  16. php解析百度云真实地址吗,百度网盘怎么获取真实下载链接 百度云资源真实地址解析教程...
  17. 【高质量编程指南笔记】
  18. (纯小白)Python简单爬取图片
  19. 事件绑定-addEventListener()和attachEvent()的区别及用法
  20. 0基础如何入门人工智能?

热门文章

  1. 跨越逐梦路上的荆棘(程序猿生存指南)
  2. CME CMS ERROR错误代码
  3. unity3d 单选框的实现
  4. arcgis地图开发测面、测距、定位小工具
  5. luogu P4390 [BOI2007]Mokia 摩基亚
  6. Linux下安装安装redis
  7. Facebook的23岁创始人
  8. 计算机相关名人,探寻计算机发展史上的名人足迹
  9. 移动电源充电宝新国标GB/T 35590-2017检测报告测试项目
  10. 互联网公司招聘--阿里巴巴--运营岗--2015年笔试题