Introduction
2022/06/11 更新
https://taktak.jp/2022/06/11/4230/ にて最新版の gRPC のビルドについて説明しています。1.28.0-pre1 以降を使用する場合は新しい記事を参照してください。
gRPCのv1.26.0をC++でビルドしてHello Worldを動かします。
今更な記事ですが、C#、Java、Pythonと違いC++のgRPCは動かすまでもが面倒です。
しかも公式のサンプルですら。
こういうエラーに苦しめられます。
- https://github.com/grpc/grpc/issues/16741
- https://github.com/grpc/grpc/issues/17576
- https://github.com/grpc/grpc/issues/19873
でネットをさまよっていると解決策を提示してくれている方の記事が。
正確には上の問題を解決する意図の記事ではないのですが。
上の説明を整えて、シェルスクリプトにまとめました。
この方の記事ではHello Worldを実行しているわけではないですが。
How to?
ソースは下記にまとめてあります。
Dockerfile
Ubuntu 18.04のdockerイメージをベースにしたビルド用イメージを作成します。
1 | FROM ubuntu:18.04 |
そしてコンテナのビルドと起動のシェル。
1 | !/bin/bash +x |
Build
gRPCのビルドです。
上のコンテナ内で実行します。
1 | !/bin/bash +x |
Hello World
これも上のコンテナ内で実行します。
1 | !/bin/bash +x |
上のスクリプト群を順番に実行すると、最終的にサーバーのLISTENとクライアントからの呼び出しが実行されます。
1 | ./run-helloworld.sh |