下载安装protobuf&grpc的开发环境,用于C++开发服务端
- protobuf安装
网址:
https://github.com/protocolbuffers/protobuf/blob/master/src/README.md
下载源码:
https://github.com/protocolbuffers/protobuf/releases/latest
编译安装:
tar -xzvf protobuf-cpp-3.9.0.tar.gz
cd protobuf-3.9.0
./autogen.sh
//只编译静态库,通过--prefix为指定安装目录
./configure --disable-shared --prefix=/home/xiaofeng/soft/xfgrpc/install_protobuf CFLAGS="-fPIC"
./configure --disable-shared --prefix=/home/xiaofeng/xfgrpc/install_protobuf CFLAGS="-fPIC"
make
make install
安装目录文件:
bin include lib
bin目录下有protoc程序,用于根据.proto定义文件来生成相应语言的grpc代码
include目录下有头文件google/protobuf/
lib目录下有静态库,libprotobuf.a & libprotobuf-lite.a & libprotoc.a
note:
如果需要使用libgrpc++_reflection.a,则需要使用grpc安装包里面的子模块protobuf,否则会出现版本不一致错误
可以通过./protoc --version来查看版本
如此处是libprotoc 3.9.0,而grpc(v1.20.0)里面的protobuf里面是libprotoc 3.7.0
so
选择一个grpc里面对应的protobuf版本,如
https://github.com/protocolbuffers/protobuf/tags浏览版本
https://github.com/protocolbuffers/protobuf/releases/tag/v3.7.0
选择文件protobuf-cpp-3.7.0.tar.gz进行下载
根据如上说明流程,获取依赖。
- grpc安装
网址:
https://github.com/grpc/grpc
下载:
//curl -L https://grpc.io/release 执行此命令获取最新版本,当前为v1.20.0
git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc
cd grpc
git submodule update --init
编译安装:
修改Makefile, 将prefix ?= /usr/local修改为自定义目录
prefix ?= /home/xiaofeng/soft/xfgrpc/install_grpc
make
make install
安装目录文件:
bin include lib share
bin目录下有各种语言插件程序
grpc_cpp_plugin grpc_csharp_plugin grpc_node_plugin grpc_objective_c_plugin
grpc_php_plugin grpc_python_plugin grpc_ruby_plugin
include目录下有头文件
grpc grpc++ grpcpp
lib目录下有库文件
libgpr.a & libgrpc.a & libgrpc++.a & libgrpc++_reflection.a
protobuf部分(没有install)
位置:third_party/protobuf
有用部分:
./src/protoc程序
./src/.libs/libprotobuf.a库
./src/google/protobuf头文件(拷贝到代码工程,删除其他无用文件,这一步比较麻烦,单独下载protobuf貌似还好点)
find . -name "*.o" | xargs rm -f
find . -name "*.lo" | xargs rm -f
find . -name "*.cc" | xargs rm -f
find . -name "*.o" | xargs rm -f