Protobuf- und gRPC C ++ - Umgebungskonstruktion unter Ubuntu 18.04

Erstellen Sie eine Umgebung für Protobuf (3.6.1) und gRPC (v1.18.0) unter Ubuntu 18.04.

Zwischen Protobuf und gRPC besteht eine Versionsabhängigkeit.

In der Entwicklungsumgebung kann der neueste Protobuf (3.13.0) nicht verwendet werden. Verwenden Sie daher den unterstützten Protobuf (3.6.1). Da der neueste gRPC (1.32.0) nicht mit dem alten Protobuf (3.6.1) kompiliert werden kann, verwenden Sie gRPC (v1.18.0) mit Protobuf (3.6.1).

Umgebung

Referenz: Einführung in die neue Technologie "gRPC" für die Kommunikation zwischen Diensten

Installieren Sie protobuf

Sie können protobuf auch aus dem protobuf-Repository und dem Ordner gRPC Third_Party / Protobuf installieren.

Wenn Sie es bereits mit apt-get installiert haben, deinstallieren Sie es. (Der Protobuf von apt-get ist 3.0.0)

sudo apt-get remove protobuf-compiler
sudo apt-get remove libprotobuf-dev
sudo apt-get remove libprotobuf-lite10
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.

--Überprüfen Sie die Version von Protobuf

$ protoc --version
libprotoc 3.6.1

$ which protoc 
/usr/local/bin/protoc

gRPC-Installation

Installieren Sie in $ HOME / .local.

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

Füge PATH zu ~ / .bashrc hinzu

export PATH=$PATH:$HOME/.local/bin
$ sudo apt-get install cmake
$ cmake --version
cmake version 3.10.2

Sie benötigen cmake Version 3.13 oder höher, installieren Sie also einen neuen 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 der Voraussetzungen

$ 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

Nicht erforderlich, wenn bereits aus dem Protobuf-Repository installiert. Es ist in Ordnung, von Drittanbieter / Protobuf neu zu installieren.

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

Führen Sie das gRPC-Beispiel aus

$ 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

Generieren von grpc- und protobuf C ++ - Code aus Protodateien

$ 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

Protobuf- und gRPC C ++ - Umgebungskonstruktion unter Ubuntu 18.04
Versuchen Sie, ScalarDB unter WSL Ubuntu (Environment Construction) auszuführen.
[Flattern] Ubuntu 20.04 Umgebungskonstruktion
Aufbau einer Laravel-Umgebung (Ubuntu 18.04 LTS)
Installieren Sie JDK und JRE unter Ubuntu 16.10
Ruby on Rails 6.0-Umgebungskonstruktionsnotiz
Erstellen Sie eine XAMPP-Umgebung unter Ubuntu
Konstruktionsverfahren für Rails on Docker-Umgebungen
Aktivieren Sie Java 8- und Java 11-SDKs unter Ubuntu
Spring Boot Umgebungskonstruktionsnotiz auf Mac
Konstruktionsnotiz für die Java-Entwicklungsumgebung auf dem Mac
Verwenden Sie Docker in einer Proxy-Umgebung unter Ubuntu 20.04.1
[Ruby] Erstellen einer Ruby-Entwicklungsumgebung unter Ubuntu
Muskel Rubin auf Schienen Tag 1 ~ Umweltbau ~
Zusammenfassung der Umgebungskonstruktion mit rvm und postgresql
Minimale Java-Umgebungskonstruktion und Hello World
Erstellen und installieren Sie Wireshark Development Release (3.3.1) unter Ubuntu
Externe Veröffentlichung und Anmeldung von MySQL unter Ubuntu
Erstellen einer Kaggle-Umgebung mit offiziellem Docker und vscode
[Java] Erstellen Sie eine Java-Entwicklungsumgebung unter Ubuntu und überprüfen Sie die Ausführung
[Notepad ++] Aufbau einer C-Sprache / Java-Kompilierungs- und Ausführungsumgebung
[Persönliches Memo] Ruby on Rails-Umgebungskonstruktion (Windows)
Installieren Sie mehrere Javas und wechseln Sie unter Ubuntu zwischen ihnen
Installationsanweisungen für Docker unter Ubuntu18.04 unter WSL2 und VSCode
So erstellen Sie eine Pytorch-Umgebung unter Ubuntu
Installieren Sie Ubuntu 20.04 in der virtuellen Box unter Windows 10 und erstellen Sie eine Entwicklungsumgebung mit Docker
[Java] Umgebungskonstruktion
[Frühling] Umweltbau
Erstellen Sie eine Ubuntu 20.04 LTS-Desktopumgebung auf Raspberry Pi 4 (+ japanische Lokalisierung)
Erstellen Sie eine Java-Entwicklungsumgebung auf Mac-JDK Install (2020-Aufbewahrungsversion).
Ich habe eine Ubuntu-Umgebung unter Windows 10 mit WSL2 erstellt.
Bereitstellen auf Ruby on Rails Elastische Bohnenstange (Umgebungskonstruktion)
Ich habe versucht, YOLO v4 unter Ubuntu und ROS zu verwenden
[Umgebungskonstruktion Mac] Ruby on Rails (+ Webpacker behandelt Fehler)
GOOS Buch Openfire On MacOS Mojave Umgebungsbau Memo
Installieren Sie rbenv mit apt auf Ubuntu und setzen Sie Ruby
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
Erstellen Sie eine Java + Spring-Entwicklungsumgebung mit VirtualBox + Ubuntu (Xfce4).
Erstellen Sie TensorFlow 2.3.1 aus dem Quellcode unter Ubuntu20.04 LTS und erstellen Sie eine gemeinsam genutzte Bibliothek in C ++