プロキシ環境下でのGRPC C++開発環境構築
プロキシ環境はいろいろと大変
会社の環境では、プロキシサーバが導入されているゆえにnpm, pip, nugetなど一般的なパッケージマネージャーが簡単には使えない。 今回はvcpkgを使いたかったがどうしても会社環境ではうまくいかなかったので遠回りした環境構築を記録する
gRPC + CPP + Visual Studio
ほかのブログなどを見るとvcpkgを使ってgrpcのインストールをするのが一般的な模様。 しかし、先述の通りvcpkgがうまく使えなかったのでgRPCのソースコードを持ってきてビルドしてインストールする。 Cmakeを使うが、相変わらずこのツールは難しいし、理解したいとも思わない。
.protoファイルからC++のコード生成
- Visual Studioインストール
- C++のビルド環境構築のため
- CMakeのインストール
- https://cmake.org/download/
- gRPCのソースコードビルド
- Githubからソースコード取得
- https://github.com/grpc/grpc
- ビルド結果をインストールするフォルダを決定
- ex) C:\grpc
- 環境変数にインストールフォルダを設定
- GRPC_INSTALL_DIR=C:\grpc
- 環境変数のPATHにバイナリへのパスを追加
- C:\grpc\bin
- proto.exe
- grpc_cpp_plugin.exe
- を使うため
- C:\grpc\bin
- ビルド
cd ./cmake/build cmake -A x64 -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF "-DCMAKE_INSTALL_PREFIX=$env:GRPC_INSTALL_DIR" -DCMAKE_BUILD_TYPE=Release ../.. cmake --build . --target install
- C:\grpcにフォルダができていれば成功
- Githubからソースコード取得
- protoファイルのコンパイル
protoc -cpp_out=./ --grpc_out=./ "plugin=protoc-gen-grpc=$env:GRPC_INSTALL_DIR/bin/grpc_cpp_plugin.exe" greet.proto
- greet.grpc.pb.cc
- greet.grpc.pb.h
- greet.pb.cc
- greet.pb.h
- ができていれば成功
Visual Studio プロジェクト設定
任意のC++プロジェクトで上記で生成したプログラムが使える状態にする
- ビルド設定をRelease x64にする(それ以外の場合上記のCMakeコマンドの変更が必要)
- 上記で生成した*.cc, *.hをプロジェクトに追加
- プロジェクトのプロパティ設定
- ビルドイベント>ビルド前のイベント>コマンドライン
- 上記のprotocコマンドを生成するバッチファイルなどを作ってビルド前にprotoファイルのコンパイルを行う
- C/C++>追加のインクルードディレクトリ
- $(GRPC_INSTALL_DIR)\include
- リンカー>追加の依存ファイル
- $(GRPC_INSTALL_DIR)\lib*.lib
- ビルドイベント>ビルド前のイベント>コマンドライン
コード
適当な生成AIにprotoファイルを渡せばそれなりに動くサンプルコードを作ってくれるので省略