Construction de l'environnement Protobuf et gRPC C ++ sur Ubuntu 18.04

Créez un environnement pour Protobuf (3.6.1) et gRPC (v1.18.0) sur Ubuntu 18.04.

Il existe une dépendance de version entre Protobuf et gRPC.

Dans l'environnement de développement, le dernier Protobuf (3.13.0) ne peut pas être utilisé, utilisez donc le Protobuf (3.6.1) pris en charge. De plus, comme le dernier gRPC (1.32.0) ne peut pas être compilé avec l'ancien Protobuf (3.6.1), utilisez gRPC (v1.18.0) en utilisant Protobuf (3.6.1).

environnement

référence: Introduction à la nouvelle technologie "gRPC" pour la communication entre les services

Installer protobuf

Vous pouvez également installer protobuf à partir du référentiel protobuf et du dossier gRPC third_party / protobuf.

Si vous l'avez déjà installé avec apt-get, désinstallez-le. (Le protobuf d'apt-get est 3.0.0)

sudo apt-get remove protobuf-compiler
sudo apt-get remove libprotobuf-dev
sudo apt-get remove libprotobuf-lite10

--Installation de protobuf 3.6.1.

sudo apt-get install autoconf automake libtool curl make g++ unzip
git clone -b 3.6.x https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh

./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.

--Vérifiez la version de protobuf

$ protoc --version
libprotoc 3.6.1

$ which protoc 
/usr/local/bin/protoc

Installation de gRPC

Installez dans $ HOME / .local.

--Réglage de MY_INSTALL_DIR

$ export MY_INSTALL_DIR=$HOME/.local
$ mkdir -p $MY_INSTALL_DIR
$ export PATH="$PATH:$MY_INSTALL_DIR/bin"

Ajouter PATH à ~ / .bashrc

export PATH=$PATH:$HOME/.local/bin

--Installation de cmake

$ sudo apt-get install cmake
$ cmake --version
cmake version 3.10.2

Vous avez besoin de la version 3.13 ou ultérieure de cmake, alors installez un nouveau cmake.

$ wget -q -O cmake-linux.sh https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0-Linux-x86_64.sh
$ sh cmake-linux.sh -- --skip-license --prefix=$MY_INSTALL_DIR
$ rm cmake-linux.sh

--Installation des pré-requis

$ sudo apt-get install build-essential autoconf libtool pkg-config libssl-dev
$ git clone --recurse-submodules -b v1.18.0 https://github.com/grpc/grpc
$ cd grpc
cd third_party/cares/cares
git fetch origin
git checkout cares-1_13_0
mkdir -p cmake/build
cd cmake/build
cmake -DCMAKE_BUILD_TYPE=Release ../..
sudo make -j4 install
rm -rf third_party/cares/cares  # wipe out to prevent influencing the grpc build
cd third_party/zlib
mkdir -p cmake/build
cd cmake/build
cmake -DCMAKE_BUILD_TYPE=Release ../..
sudo make -j4 install
rm -rf third_party/zlib  # wipe out to prevent influencing the grpc build

Non requis si déjà installé à partir du référentiel protobuf. Il est possible de réinstaller à partir de third_party / protobuf.

cd third_party/protobuf
mkdir -p cmake/build
cd cmake/build
cmake -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release ..
sudo make -j4 install
rm -rf third_party/protobuf  # wipe out to prevent influencing the grpc build
cd grpc
mkdir -p cmake/build
cd cmake/build
cmake \
  -DCMAKE_BUILD_TYPE=Release \
  -DgRPC_INSTALL=ON \
  -DgRPC_BUILD_TESTS=OFF \
  -DgRPC_CARES_PROVIDER=package \
  -DgRPC_PROTOBUF_PROVIDER=package \
  -DgRPC_SSL_PROVIDER=package \
  -DgRPC_ZLIB_PROVIDER=package \
  -DCMAKE_INSTALL_PREFIX=$MY_INSTALL_DIR \
  ../..

make -j4 install
$ protoc --version
libprotoc 3.6.1

$ which protoc 
/usr/local/bin/protoc

Exécuter l'exemple gRPC

$ cd examples/cpp/helloworld
$ mkdir -p cmake/build
$ cd cmake/build
$ cmake ../..
$ make -j
$ ./greeter_server

# From a different terminal
$ ./greeter_client
Greeter received: Hello world

Génération de code C ++ grpc et protobuf à partir de fichiers proto

$ protoc \
    --grpc_out=./codegen \
    --cpp_out=./codegen \
    --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` \
    ./telemetry.proto

$ cd codegen
$ ls
telemetry.grpc.pb.cc  telemetry.grpc.pb.h  telemetry.pb.cc  telemetry.pb.h

Recommended Posts

Construction de l'environnement Protobuf et gRPC C ++ sur Ubuntu 18.04
Essayez d'exécuter ScalarDB sur WSL Ubuntu (Construction de l'environnement)
[Flutter] Construction de l'environnement Ubuntu 20.04
Construction de l'environnement Laravel (Ubuntu 18.04 LTS)
Installez JDK et JRE sur Ubuntu 16.10
Mémo de construction de l'environnement Ruby on Rails 6.0
Créer un environnement XAMPP sur Ubuntu
Rails sur la procédure de construction de l'environnement Docker
Activer les SDK Java 8 et Java 11 sur Ubuntu
Mémo de construction de l'environnement Spring Boot sur Mac
Mémo de construction de l'environnement de développement Java sur Mac
Utiliser docker dans un environnement proxy sur ubuntu 20.04.1
[Ruby] Création d'un environnement de développement Ruby sur Ubuntu
Muscle Ruby on Rails Jour 1 ~ Construction de l'environnement ~
Résumé de la construction de l'environnement avec rvm et postgresql
Construction d'un environnement Java minimal et Hello World
Construire et installer la version de développement Wireshark (3.3.1) sur Ubuntu
Publication externe et connexion de MySQL sur Ubuntu
Créer un environnement Kaggle à l'aide de Docker officiel et de vscode
[Java] Créer un environnement de développement Java sur Ubuntu et vérifier l'exécution
[Notepad ++] Langage C / Construction d'environnement d'exécution et de compilation Java
[Note personnelle] Construction de l'environnement Ruby on Rails (Windows)
Installez plusieurs Javas et basculez entre eux sur Ubuntu
Docker sur Ubuntu18.04 sur WSL2 et instructions d'installation de VSCode
Comment créer un environnement Pytorch sur Ubuntu
Installez Ubuntu 20.04 dans la boîte virtuelle sur Windows10 et créez un environnement de développement à l'aide de docker
[Java] Construction de l'environnement
[Printemps] Construction de l'environnement
Créer un environnement de bureau Ubuntu 20.04 LTS sur Raspberry Pi 4 (+ localisation japonaise)
Créer un environnement de développement Java sur l'installation Mac-JDK (version de préservation 2020)
J'ai construit un environnement Ubuntu sur Windows 10 en utilisant WSL2.
Déployer sur Ruby on Rails Elastic beanstalk (Construction de l'environnement)
J'ai essayé d'utiliser YOLO v4 sur Ubuntu et ROS
[Construction de l'environnement Mac] Ruby on Rails (+ Webpacker gère les erreurs)
Livre GOOS Openfire sur MacOS Mojave Environment Construction Memo
Installez rbenv avec apt sur ubuntu et mettez ruby
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
Créer un environnement de développement Java + Spring avec VirtualBox + Ubuntu (Xfce4)
Construisez TensorFlow 2.3.1 à partir des sources sur Ubuntu20.04 LTS et créez une bibliothèque partagée en langage C ++