原创

如何在Mac上安装BRPC

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://xuexiangjys.blog.csdn.net/article/details/89282802

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就可以看到服务器的状态了,如下图:
在这里插入图片描述

拓展阅读

联系方式


在这里插入图片描述

微信公众号

在这里插入图片描述

文章最后发布于: 2019-04-13 15:00:05
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 点我我会动 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览