とある地味なブログ

プログラミングとお絵かきに関する雑記。

ProtobufのgRPCプラグインをコンパイルする(Windows 7)

ぶっちゃけgRPCもProtocol BufferもVisual Studioもよくわかっていませんが、 とりあえずコード生成できたので。

以下ではPHPを例にとりますが、この記事の最後には、その他の言語のプラグインコンパイルします。

クライアントコードの生成のために

https://grpc.io/docs/tutorials/basic/php.html#generating-client-code

上記のように、

make grpc_php_plugin

とやれば終わりです。

Linux, MacOSであれば。

Windowsユーザーは茨の道です。(いうほど茨ではないかもしれない)

Windows 10が使えるならUbuntu使えば適当にできるんじゃない?(はなほじ)

Visual Studioをインストー

Visual Studio Community - Visual Studio

ぶっちゃけ最新のVSならコンパイルできるやろ~という、甘い目論見でインストールします。

インストールするときに、

変更 -> 個別のコンポーネント -> コンパイラ、ビルドツール、およびランタイム -> Windows Universal CRT SDK

にチェックをいれます。

すでに入っている場合は、もう一度インストーラを起動すれば同じ画面がでます。

CMakeをインストー

Download | CMake

落としてきてインストールして、binディレクトリにパスを通してください。

gRPCのソースを落とす

コマンドプロンプトで、

git clone --recursive https://github.com/grpc/grpc

libprotobuf.lib, libprotoc.libをコンパイルする

cd grpc\third_party\protobuf\cmake
cmake -Dprotobuf_BUILD_TESTS=OFF .

を実行し、生成されたファイル(更新日時で判別した)を

grpc\third_party\protobuf\cmake\build\solution

下に移動します。

protobuf.slnを実行します。

画面上のDebugとあるプルダウンをReleaseにします。

画面上のWin32とあるプルダウンを開き、構成マネージャーを選択。

ビルドカラムのチェックの、js_embed, libprotobuf, libprotocにチェックをつけます。

メニューバーのビルド(B)から、ソリューションのビルドを実行します。

grpc\third_party\protobuf\cmake

にバイナリが生成されるので、これらを、

grpc\third_party\protobuf\cmake\build\solution\Release

下にコピーします。

grpc_***_plugin をコンパイル

grpc\vsprojects\grpc_protoc_plugins.sln を実行します。

画面上のDebugとあるプルダウンをReleaseにします。

メニューバーのビルド(B)から、ソリューションのビルドを実行します。

grpc\vsprojects\Release

を見ると……

できた!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11!!!1!!!1!