Skip to content

构建指引

Zuoyan Qin edited this page Nov 25, 2016 · 3 revisions

本文档指引你如何构建sofa-pbrpc,包含:

  • 编译依赖
  • 编译
  • 安装
  • 单元测试
  • 使用样例

编译依赖

sofa-pbrpc库的构建依赖boost-1.53.0、protobuf-2.4.1、snappy、zlib。

Boost

下载地址:http://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_1_53_0.tar.gz

编译:因为只需要boost的头文件,所以解压即可,无需编译。

配置:修改“depends.mk”,将BOOST_HEADER_DIR设置为解压得到的boost文件夹路径,譬如:

BOOST_HEADER_DIR=/home/users/qinzuoyan01/libs/boost_1_53_0

Protobuf

下载地址:https://github.com/google/protobuf/releases/download/v2.4.1/protobuf-2.4.1.tar.gz

编译:

  1. 解压,cd到解压得到的文件夹下;
  2. ./configure –prefix=$PWD/output
  3. make
  4. make install

配置:修改“depends.mk”,将PROTOBUF_DIR设置为编译输出文件夹路径,譬如:

PROTOBUF_DIR=/home/users/qinzuoyan01/libs/protobuf-2.4.1/output

注意:在使用高版本GCC(譬如6.0.2)编译protobuf-2.4.1时,如果遇到如下编译错误:

google/protobuf/compiler/command_line_interface.cc:913:78: error: no matching function for call to ‘make_pair(std::__cxx11::string&, std::_cxx11::string&)’

可以这样解决:

- proto_path_.push_back(make_pair<string, string>(virtual_path, disk_path));
+ proto_path_.push_back(make_pair(virtual_path, disk_path));

Snappy

下载地址:https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz

编译:

  1. 解压,cd到解压得到的文件夹下;
  2. ./configure –prefix=$PWD/output
  3. make
  4. make install

配置:修改“depends.mk”,将SNAPPY_DIR设置为编译输出文件夹路径,譬如:

SNAPPY_DIR=/home/users/qinzuoyan01/libs/snappy-1.1.3/output

Zlib

如果你的系统库中已经安装zlib,请直接跳过。

下载地址:http://zlib.net/zlib-1.2.8.tar.gz

编译:

  1. 解压,cd到解压得到的文件夹下;
  2. ./configure –prefix=$PWD/output
  3. make
  4. make install

配置:修改“depends.mk”,将ZLIB_DIR设置为编译输出文件夹路径,譬如:

ZLIB_DIR=/home/users/qinzuoyan01/libs/zlib-1.2.8/output

编译

运行“make”进行编译。

安装

运行“make install”进行安装。

默认会安装到“./output”文件夹下,可通过修改“Makefile”文件中的“PREFIX”来设置安装路径。

安装的文件包括:

  • include/*
  • lib/libsofa-pbrpc.a
  • bin/sofa-pbrpc-client

单元测试

进入单元测试文件夹“unit-test”。

依赖:单元测试需额外依赖gtest库,下载地址为 https://github.com/google/googletest/archive/release-1.7.0.tar.gz ,解压即可,无需编译。然后修改文件“unit-test/depends.mk”,将GTEST_DIR设置为解压得到的gtest文件夹路径。

编译:运行“make”进行编译。

测试:运行“sh run_test.sh”执行测试。

使用样例

进入样例文件夹“sample”。

使用样例共有四个:echo/timeout_sample/compress_sample/mock_sample。

除了mock_sample,其他三个样例可直接进入文件夹运行“make”。

mock_sample需要指定gtest依赖,配置方式与“unit-test”相同。

支持

构建过程中遇到的任何问题,请咨询 qinzuoyan01@baidu.com 或者 qinzuoyan@gmail.com

Clone this wiki locally