ubuntu编译grpc & protobuf
参考:Ubuntu系统中本地编译并安装grpc的C++版本及测试 - 知乎 (zhihu.com)
安装依赖:
# 这些可能都已经安装了 sudo apt-get install pkg-config autoconf automake libtool make g++ unzip # 下面的可能没安装 sudo apt-get install libgflags-dev libgtest-dev sudo apt-get install clang libc++-dev
下载源码:
git clone -b v1.36.4 https://github.com/grpc/grpc.git cd grpc # 下载其依赖的子模块 git submodule update --init
先编译安装protobuf:
# 此时应在grpc文件夹下 cd third_party/protobuf/ # 更新依赖的子模块 git submodule update --init --recursive # 生成配置脚本 sudo ./autogen.sh # 生成makefile文件 sudo ./configure # 从makefile读取指令编译 sudo make # 可能报错,但不影响安装 sudo make check # 安装 sudo make install # 更新共享库缓存 sudo ldconfig # 查看安装的位置 which protoc #查看是否安装成功,这里输出的protoc版本应该是3.14.0 protoc --version
继续安装grpc:
进入到grpc文件夹下# 创建编译文件夹 mkdir -p cmake/build cd cmake/build cmake ../.. # 编译 make -j3 # 安装 sudo make install
测试安装成功与否:
# 进入grpc文件夹下 cd examples/cpp/helloworld mkdir build cd build # 编译 cmake .. make # 编译完成后,在文件夹下就生成了可执行文件,先执行 ./greeter_server # 再新开终端,执行 ./greeter_client # 会输出:Greeter received: Hello world # 即安装成功
如何使用:
参考上述示例中的cmakelist中的写法,在自己的项目中包含 common.cmake。 可以把这个common.cmake拷贝到自己工程中。
包含后,再显式链接一下相关库: