less than 1 minute read

プロキシ環境はいろいろと大変

会社の環境では、プロキシサーバが導入されているゆえにnpm, pip, nugetなど一般的なパッケージマネージャーが簡単には使えない。 今回はvcpkgを使いたかったがどうしても会社環境ではうまくいかなかったので遠回りした環境構築を記録する

gRPC + CPP + Visual Studio

ほかのブログなどを見るとvcpkgを使ってgrpcのインストールをするのが一般的な模様。 しかし、先述の通りvcpkgがうまく使えなかったのでgRPCのソースコードを持ってきてビルドしてインストールする。 Cmakeを使うが、相変わらずこのツールは難しいし、理解したいとも思わない。

.protoファイルからC++のコード生成

  1. Visual Studioインストール
    • C++のビルド環境構築のため
  2. CMakeのインストール
    • https://cmake.org/download/
  3. gRPCのソースコードビルド
    1. Githubからソースコード取得
      • https://github.com/grpc/grpc
    2. ビルド結果をインストールするフォルダを決定
      • ex) C:\grpc
    3. 環境変数にインストールフォルダを設定
      • GRPC_INSTALL_DIR=C:\grpc
    4. 環境変数のPATHにバイナリへのパスを追加
      • C:\grpc\bin
        • proto.exe
        • grpc_cpp_plugin.exe
        • を使うため
    5. ビルド
        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
      
    6. C:\grpcにフォルダができていれば成功
  4. 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++プロジェクトで上記で生成したプログラムが使える状態にする

  1. ビルド設定をRelease x64にする(それ以外の場合上記のCMakeコマンドの変更が必要)
  2. 上記で生成した*.cc, *.hをプロジェクトに追加
  3. プロジェクトのプロパティ設定
    1. ビルドイベント>ビルド前のイベント>コマンドライン
      • 上記のprotocコマンドを生成するバッチファイルなどを作ってビルド前にprotoファイルのコンパイルを行う
    2. C/C++>追加のインクルードディレクトリ
      • $(GRPC_INSTALL_DIR)\include
    3. リンカー>追加の依存ファイル
      • $(GRPC_INSTALL_DIR)\lib*.lib

コード

適当な生成AIにprotoファイルを渡せばそれなりに動くサンプルコードを作ってくれるので省略