Windowsでprotobufのダウンロード、コンパイル(メモ)

#Protocolfとは
<details><summary>ProtocolfはProtocol Buffersの略です。</summary><div>
___Protocolfのデザインの目的はシンプルさとパフォーマンスです。Protobufは実際にJsonまたはXMLのようなデータ伝送フォーマットと仕様です。異なるアプリケーションやプロセス間の通信に使用されいます。___




* 十分な簡単です
* プログレッシブ化後の体積は小さいです。メッセージサイズはXMLの1/10～1/3だけ必要です。

* 解析速度が速い：解析速度はXMLより20~100倍速いです。
* マルチ言語サポート
</div></details>

#protobufのインストール
<details><summary>二つ方法があります。</summary><div>
###方法一:
<details><summary>直接protoc-3.13.0-win64.zipをウンロードする。</summary><div>
protobufソースコードをダウンロードし、[github](https://github.com/protocolbuffers/protobuf/releass) からprotoc-3.13.0-win64.zipをダウンロードしてください。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/aff9c024-3123-f836-96d3-e4e221bd463a.png)
僕がダウンロードしたのは『protoc-3.13.0-win64.zip』です。
そして、『D:\ProgramData\』に解凍します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/7c041e8d-9846-f782-f290-2e5f3e96a3d4.png)

</details>
</div></details>
###方法二:
<details><summary>コマンドでコンパイルをします。</summary><div>
####準備：

***1.*** 使っているパソコンはwin10で、すでにVS 2019とcmake 3.17.2をインストールしています。

***2.*** protobufソースコードをダウンロードし、[github](https://github.com/protocolbuffers/protobuf/releass) から直接ZIPパケットをダウンロードしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/64f00001-0048-9844-7ac9-01015910e7a9.png)
いろいろなバージョンがあって、自分に合うバージョンをダウンロードしてください。
僕がダウンロードしたのは『protobuf-all-3.13.0.zip』です。
そして、『D:\ProgramData\』に解凍します。

###コンパイル:
これは64ビットのdebugバージョンをコンパイルした例です。
releaseバージョンであれば、各コマンドのdebugパスをreleaseパスに変更して、コマンド5の中の

「-DCMAKE_BUILD_TYPE=Debug」に「-DCMAKE_BUILD_TYPE=Release」変更します。

「Visual Studio 2019-Visual Studio Tools」を選択し、「x 64 Native Tools Command Propt for VS 2019」をダブルクリックします。

コマンド1から7までを順番に入力してください。
***コマンド1-4***

```
d:
cd ProgramData\protobuf-3.13.0\cmake　
mkdir build & cd build
mkdir x64 & cd x64
mkdir debug & cd debug
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/f7b9ae6b-92b3-30f1-befa-5a013666bdc0.png)


この時、protobuf-3.13.0/cmake/build/x64/debugに位置していますが、ここで作成したdebugフォルダは関連するcmake fileの設定情報を保存するためだけに使用されています。特別な意味はありません。

***コマンド5***

```
cmake -G “NMake Makefiles” -DCMAKE_BUILD_TYPE=Debug -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../../../install/x64/debug ../../../
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/41de8950-b4aa-284a-8026-e1e288d1815e.png)
cmake file関連のプロファイルを生成します。



***コマンド6***

```
nmake
```

protobufのコンパイルが完了まで待っていて、僕の場合は6分ぐらいかかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/2e23d37d-245f-133a-5016-ac67775ad499.png)


***コマンド7***

```
nmake install
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/662a6569-df58-5910-dd89-ce2ad3892fd7.png)
完成したらprotobuf-3.3.2\install\x64\debugディレクトリの下でbin、include、lib、cmakeの四つのフォルダを生成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/8fcae4dc-ab9d-21d8-9438-3592ebd4692c.png)
</div></details>

---------------------------------------

:v_tone4:ここまで、protobufのインストールを完成されました。
</div>



#環境変数の設定
<details><summary>binフォルダのパスを環境変数に追加します。</summary><div>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/69b9ce57-4110-2a63-45fa-dddb0f779410.png)
</div></details>

#バージョンの表示
<details><summary>バージョンを表示します。</summary><div>

```
protoc --version
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691360/d5600daf-98a6-b1c7-a29f-56fb2881b6a0.png)
</div></details>