如何在Mac上安装BRPC

BRPC是百度内最常使用的工业级RPC框架, 有1,000,000+个实例(不包含client)和上千种多种服务, 在百度内叫做"baidu-rpc",是一个非常有价值的战斗级RPC框架。

BRPC的优势

过多优势的介绍不是本文的重点,以下提供几个链接作为参考:

BRPC的安装

由于brpc是使用C++编写的,目前官方并没有提供比较友好的安装方式,需要clone官方提供的源码进行编译安装才可以运行。

先给出官方文档-macos,供大家参考。

虽说官方文档写得确实不错,在C++老手看来是非常简单的,但是对于我这个Android出身,C++水平一般的人而言,光是编译安装就花了近3个小时才安装成功,下面我将一步一步讲解如何在Mac安装BRPC以及中间遇到的各种坑。

安装前的准备工作

在安装前,百度也事先提醒了,当前Mac版本的性能比Linux版本差2.5倍,建议不要使用MacOS用作生产环境,不过这应该不影响我进行开发吧,哈哈~~

  1. 安装通用的开发工具

执行下面的命令,安装openssl、git、gnu-getopt、coreutils

brew install openssl git gnu-getopt coreutils
  1. 安装BRPC依赖的工具

执行下面的命令,安装gflags, protobuf, leveldb

brew install gflags protobuf leveldb
  • gflags:google的命令行参数解析工具
  • protobuf:google公司发布的一套开源编码规则,基于二进制流的序列化传输工具。
  • leveldb:google实现的非常高效的kv数据库。
  1. 安装性能检测工具gperftools(可选)
brew install gperftools
  1. 安装单元测试工具googletest(可选)
git clone https://github.com/google/googletest && cd googletest/googletest && mkdir bld && cd bld && cmake -DCMAKE_CXX_FLAGS="-std=c++11" .. && make && sudo mv libgtest* /usr/lib/ && cd -

开始编译安装

这里我使用的是执行config_brpc.sh脚本进行编译安装。

  1. clone brpc
git clone https://github.com/apache/incubator-brpc.git
  1. cd进入源码目录,执行如下命令
$ sh config_brpc.sh --headers=/usr/local/include --libs=/usr/local/lib --cc=clang --cxx=clang++
$ make

在mac上编译遇到的坑

执行后你会发现编译各种报错。好了,下面我开始讲解编译过程中遇到的各种坑:

  • 检查一下你安装的protobuf的版本,如果>3.6.1,请先进行降级处理。

至于如何使用homebrew安装指定版本的程序,我提供如下两种方法:

(1)通用方法

(2)终极方法

  • 检查openssl版本,如果是1.0.2r版本,那么请你修改config.mk文件,手动添加openssl的目录:
HDRS=/usr/local/Cellar/openssl/1.0.2r/include /usr/local/include/ /usr/local/include/node/
LIBS=/usr/local/Cellar/openssl/1.0.2r/lib /usr/local/lib

解决了以上两个大坑后,基本是也就能编译成功了。

测试程序运行

$ cd example/echo_c++
$ make
$ ./echo_server &
$ ./echo_client

执行后,打开浏览器,输入localhost:8000就可以看到服务器的状态了,如下图:

在这里插入图片描述

拓展阅读

联系方式

在这里插入图片描述

微信公众号

在这里插入图片描述
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • 开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜。201...
    Cynthia成阅读 2,380评论 0 15
  • 自由一直以来都是人们所追求的。 我时常看不清楚自己的心,我不知道是否每个人都要有一颗追求自由的心。 但我经常看见自...
    臬兑阅读 125评论 0 2
  • 马上就要期中考试了,我先总结一下,前三个单元的知识,和我存在的问题。 第一单元我们学习了小数除法。先学习了小数...
    雷妍阅读 540评论 0 2
  • 远方有数不尽的云霞 远方有看不穿的山林 远方有淌不完的洋流 远方有念不忘的人家 我想住去那远方 那灯那火那篱笆 我...
    沣吟阅读 204评论 2 5
  • 儿子,今天妈妈又一次感受到了你的压力,你的不易,可是,除了心疼,妈妈别无办法,因为未来是属于你的,无论如何...
    wwx宁静致远阅读 322评论 0 0