0%

brpc-Trial

阅读更多

1 Prepare

安装gflag

  • 需要额外指定编译参数-fPIC,否则brpc链接的时候会报错
1
2
3
4
5
6
7
git clone https://github.com/gflags/gflags.git --depth 1
cd gflags
cmake -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -fPIC" -B build
cd build
make -j $(( (cores=$(nproc))>1?cores/2:1 ))
sudo make install
sudo ldconfig

安装protobuf

  • 需要额外指定编译参数-fPIC,否则brpc链接的时候会报错
  • brpcprotobuf的版本有要求,这里我们选择v3.14.0版本,该版本只能用make安装
  • 默认情况下,make install会安装到/usr/local/lib目录。brpc会优先从/usr/local/lib64目录中搜索(我的环境中,该目录正好有一个其他版本的protobuf.a),因此我需要修改一下安装路径,覆盖掉原有的lib文件
1
2
3
4
5
6
7
8
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
git checkout v3.14.0
./configure CXXFLAGS="-fPIC" CFLAGS="-fPIC"
sudo make prefix=/usr/local libdir=/usr/local/lib64 bindir=/usr/local/bin -j $(( (cores=$(nproc))>1?cores/2:1 ))
sudo make prefix=/usr/local libdir=/usr/local/lib64 bindir=/usr/local/bin install
sudo ldconfig

安装leveldb

  • 需要额外指定编译参数-fPIC,否则brpc链接的时候会报错
1
2
3
4
5
6
7
8
git clone https://github.com/google/leveldb.git
cd leveldb
git submodule update --init --recursive
cmake -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -fPIC" -B build
cd build
make -j $(( (cores=$(nproc))>1?cores/2:1 ))
sudo make install
sudo ldconfig

2 Build

1
2
3
4
5
6
7
git clone https://github.com/apache/incubator-brpc.git --depth 1
cd incubator-brpc
cmake -B build
cd build
make -j $(( (cores=$(nproc))>1?cores/2:1 ))
sudo make install
sudo ldconfig

3 FAQ

  1. brpc会使用协程,在协程内使用std::mutex可能会产生死锁的问题,需要使用bthread::Mutex

4 TODO

  1. bvar

5 参考