安装相关依赖工具
安装pkg-config
- sudo apt-get install pkg-config
安装依赖文件
- sudo apt-get install autoconf automake libtool make g++ unzip
- sudo apt-get install libgflags-dev libgtest-dev
- sudo apt-get install clang libc++-dev
安装protobuf(3.6.1)
下载网址:https://github.com/protocolbuffers/protobuf/releases
找到3.6.1版本
- wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-cpp-3.6.1.tar.gz
- tar xzvf protobuf-cpp-3.6.1.tar.gz
- cd protobuf-cpp-3.6.1
- ./autogen.sh
- [CFLAGS=-fPIC CPPFLAGS=-fPIC] ./configure [--disable-shared]
注:中括号内为可选项,当你要编译自己的动态库(so)并想链接protobuf的静态库时,需要机上-fPIC选项,如果是不是要编译动态库,可以不用加 - make
- sudo make install
- sudo ldconfig
检查protoc安装是否成功 - protoc --version
输出:protoc 3.6.1
make时可能出现错误:
/usr/bin/ld: warning: libprotobuf.so.15, needed by //usr/local/lib/libprotoc.so, may conflict with libprotobuf.so.9
这是因为电脑安装了两个不同版本的protobuf(ubuntu16默认已经安装了protobuf.so.9这系列的,新装的是protobuf.so.15系列的)。
解决办法:
卸载掉老版本的protobu:
sudo apt-get remove libprotobuf-dev
以下为对make命令的补充,不运行:
卸载命令:make uninstall
清除编译产生的可执行文件及目标文件:make clean
除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉:make distclean
安装GRPC(v1.17.1)
下载GRPC源码(v1.17.1)
- git clone -b v1.17.1 https://github.com/grpc/grpc
更新第三方源码
- cd grpc
- git submodule update --init
重新运行make命令:
- make
继续运行下面命令: - sudo make install #编译安装,默认安装位置为/usr/local/
检查是否安装成功 - which grpc_cpp_plugin
输出:/usr/local/bin/grpc_cpp_plugin