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にしてください。

f:id:tyojugiga:20190912234133p:plain

 

 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のところで紹介した記事にも掲載されています。

f:id:tyojugiga:20190913003233p:plain

 もう一度buildすると以下ようなエラーがでますので対象の部分をint→size_tに直します。

f:id:tyojugiga:20190913003640p:plain

 

これでbuidは完了です。お疲れさまでした!

 

ここまで読んでいただきありがとうございます!ご意見、ご質問等ありましたらコメントしていただけるとありがたいです。