gRPC(c++)をVisual Studio2019でbuildする
最近、gRPC(c++)を導入する機会があったので、その導入までまとめておきます。
環境
- OS:Windows10 home
- Visual Studio:2019
- CMake:3.15.3
- gRPC:1.2.5
- Protocol Buffers:3.9.1
- zlib:1.2.11
- Active Perl:5.28.1
- Openssl:1.0.2l
1.Protocol Buffersのbuild
gRPCについては新しいversionが出ていますが、vsprojectsのディレクトリが入ってないので、本記事では1.2.5を使用します。Protocol Buffersのbuildについては、以下の記事にわかりやすく掲載されていますので参考にしてください。
https://qiita.com/yuzo777/items/197196b80d8abd5f6566
2.grpc_protoc_plugins.sinのbuild
grpc\vsprojects\protobuf.slnをDebugモードとReleaseモードでbuildした結果作成されるgrpc\third_party\protobuf\cmake\build\solution\x64\Debugとgrpc\third_party\protobuf\cmake\build\solution\x64\Releaseをgrpc\third_party\protobufにコピーした状態で、grpc\vsprojectsにあるgrpc_protoc_plugins.sinをbuildするとうまくいきます。buildする際はReleaseモードでx64にしてください。
3.grpc.sinのbuild
grpc.sinをbuildするには以下のものをインストールする必要があります。
- zlib
- ActivePerl
- Openssl
zlibについてはいかの記事にわかりやすく掲載されていますので参考にしてください。
http://maradick-yamato.blogspot.com/2018/10/zliblibpng.html
生成されたzlibstat.libをzlib.libにrenameしてgrpc\vsprojects\vcxproj\grpc_dllにコピーしてください。
同じくActivePerlとOpensslについても以下の記事にわかりやすく掲載されています。
https://kagasu.hatenablog.com/entry/2017/10/03/143232
Opensslについても新しいversionだとうまくbuildできないため、1.0.2lを使用しています。openssl\out32dllにlibeay.libとssleay.libが生成されているのでそれをgrpc\vsprojects\vcxproj\grpc_dllにコピーしてください。
以上ができたらいよいよgrpc\vsprojects\grpc.sinをbuildします。
そのままbuildしようとすると以下のようなエラーが発生しますのでgrpc_dllにあるgrpc.defのエラー部分を削除します。これはProtocol Buffersのところで紹介した記事にも掲載されています。
もう一度buildすると以下ようなエラーがでますので対象の部分をint→size_tに直します。
これでbuidは完了です。お疲れさまでした!
ここまで読んでいただきありがとうございます!ご意見、ご質問等ありましたらコメントしていただけるとありがたいです。