• GRPC C++开发环境搭建


    本文章参与<零声教育>的C/C++Linux服务器高级架构系统教程学习:

    1 安装必要的依赖工具

    安装必要的依赖工具

    sudo apt-get install autoconf automake libtool

    如果cmake低于3.15, gcc/g++ 低于 7.0 ,请根据文档进行安装。查看版本的方式

    1. # 检查cmake版本
    2. cmake -version
    3. # 检查gcc/g++版本
    4. gcc -v
    5. g++ -v

    1.1 安装 cmake

    1. 卸载已经安装的旧版的CMake

    sudo apt-get autoremove cmake

    2. 文件下载解压

    1. wget https://cmake.org/files/v3.23/cmake-3.23.0-linux-x86_64.tar.gz
    2. tar zxf cmake-3.23.0-linux-x86_64.tar.gz

    3. 创建软链接

    注: 文件路径是可以指定的, 一般选择在/opt/usr 路径下, 这里选择/opt

    1. sudo mv cmake-3.23.0-linux-x86_64 /opt/cmake-3.23.0
    2. sudo ln -sf /opt/cmake-3.23.0/bin/* /usr/bin/

    4. 测试版本

    1. ubuntu@VM-16-11-ubuntu:~/rpc$ cmake -version
    2. cmake version 3.23.0
    3. CMake suite maintained and supported by Kitware (kitware.com/cmake).

    1.2 安装gcc/gdb

    升级gcc和gdb的版本,至少需要6.3以上的版本。

    1. sudo apt-get install -y software-properties-common
    2. sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    3. sudo apt update
    4. sudo apt install g++-7 -y

    建立软连接并检查

    1. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 \
    2. --slave /usr/bin/g++ g++ /usr/bin/g++-7
    3. sudo update-alternatives --config gcc
    4. gcc -v
    5. g++ -v

    2 编译grpc

    下载源码

    git clone  https://github.com/grpc/grpc

    查看版本并选择合适的版本,这里选择v1.45.2相对较新的版本

    1. git tag
    2. git checkout v1.45.2

    查看此时grpc目录内容的大小du -h --max-depth=1, 可以看到427M左右

    1. ubuntu@VM-16-11-ubuntu:~/rpc/grpc$ du -h --max-depth=1
    2. 348M ./.git
    3. 32K ./summerofcode
    4. 1.5M ./doc
    5. 6.5M ./tools
    6. 4.0K ./spm-core-include
    7. 24M ./test
    8. 80K ./cmake
    9. 3.0M ./third_party
    10. 4.0K ./spm-cpp-include
    11. 1.5M ./templates
    12. 8.0K ./.bazelci
    13. 1.9M ./include
    14. 5.0M ./examples
    15. 34M ./src
    16. 268K ./etc
    17. 64K ./.github
    18. 284K ./bazel
    19. 427M .

    下载第三方依赖库,下载完后会发现整个grpc目录内容明显变大=

    git submodule update --init

    再次查看 目录大小,占用了1.3G

    1. ubuntu@VM-16-11-ubuntu:~/rpc/grpc$ du -h --max-depth=1
    2. 899M ./.git
    3. 32K ./summerofcode
    4. 1.5M ./doc
    5. 6.5M ./tools
    6. 4.0K ./spm-core-include
    7. 24M ./test
    8. 80K ./cmake
    9. 291M ./third_party
    10. 4.0K ./spm-cpp-include
    11. 1.5M ./templates
    12. 8.0K ./.bazelci
    13. 1.9M ./include
    14. 5.0M ./examples
    15. 34M ./src
    16. 268K ./etc
    17. 64K ./.github
    18. 284K ./bazel
    19. 1.3G

    编译和安装

    1. mkdir -p cmake/build
    2. cd cmake/build
    3. cmake ../..
    4. make
    5. sudo make install

    3 protobuf安装

    不用手动安装protobuf,不然版本可能和grcp不匹配,必须在 grpc 执行 git submodule update --init 命令之后生成的 third_party/protobuf 里面编译安装对应的 protobuf。

    1. cd third_party/protobuf/
    2. ./autogen.sh
    3. ./configure --prefix=/usr/local
    4. make
    5. sudo make install
    6. sudo ldconfig # 使得新安装的动态库能被加载
    7. protoc --version
    8. 显示3.19.4

    4 测试环境

    编译helloworld

    1. cd grpc/examples/cpp/helloworld/
    2. mkdir build
    3. cd build/
    4. cmake ..
    5. make登录后复制

    启动服务和客户端

    1. # 启动服务端,监听在50051端口
    2. ./greeter_server
    3. Server listening on 0.0.0.0:50051
    4. # 启动客户端,服务端返回Hello world
    5. ./greeter_client
    6. Greeter received: Hello world

    5 参考

    ubuntu搭建grpc for C++开发环境wx5bb365de633ed的技术博客51CTO博客 该文档提供修改grpc第三方库下载地址的方式进行安装。

  • 相关阅读:
    Arduino 基础语法
    第一篇 打开终端的时候处在哪个位置
    Windows 常用快捷键
    python 获得文件名、文件后缀、文件全名、文件上级文件夹名称、所在目录。
    mybatis03与spring的集成
    介绍两款生成神经网络架构示意图的工具:NN-SVG和PlotNeuralNet
    信息化发展55
    申诉解决TeamViewer免费个人版被误判为商业使用
    安装appnium
    总结线程安全问题的原因和解决方案
  • 原文地址:https://blog.csdn.net/jianfeng123123/article/details/128060628