Protocol Buffers(C++)の導入の備忘録。
WindowsではVisual Studioを、MacではXcodeを使いました。
インストール
Windows
Windowsの場合、vcpkgを使う方法が簡単です。
vcpkgのインストール
PS> git clone https://github.com/Microsoft/vcpkg
PS> cd vcpkg
PS> .\bootstrap-vcpkg.bat
protobuf C++のインストール
PS> ./vcpkg install protobuf protobuf:x64-windows
vcpkgフォルダーの中のinstalledフォルダーにファイルが生成されます。
Mac
Macでは、Homebrewを使ってprotobufをインストールします。
Homebrewのインストール
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
protobufのインストール
$ brew install protobuf
$ protoc --version
libprotoc 3.5.1
Visual Studio(Windows)のプロジェクトの設定
ファイルの配置
vcpkgフォルダーの中のinstalledフォルダーに生成されたファイルがあります。
gitで関連するファイルをまとめて管理したいので、プロジェクトのフォルダー直下にlibディレクトリを作成し、以下のファイル・ディレクトリを配置します。
- libprotobuf.lib
- libprotobufd.lib
- includeディレクトリ
以下のような構成になる。
プロジェクト/
lib/
google/
protobuf/
…
libprotobuf.lib
libprotobufd.lib
プロジェクトの設定
「プロジェクトのプロパティ」→「構成プロパティ」→「C/C+」→「全般」→「追加のインクルードディレクトリ」にincludeディレクトリを追加します。
$(LocalDebuggerWorkingDirectory)lib
「プロジェクトのプロパティ」→「構成プロパティ」→「リンカー」→「全般」→「追加のライブラリディレクトリ」にlibprotobuf.libを配置したディレクトリを追加します。
$(LocalDebuggerWorkingDirectory)lib\
「プロジェクトのプロパティ」→「構成」を「Release」にし、「構成プロパティ」→「リンカー」→「入力」→「追加の依存ファイル」にlibprotobuf.libを追加します。
libprotobuf.lib
「プロジェクトのプロパティ」→「構成」を「Debug」にし、「構成プロパティ」→「リンカー」→「入力」→「追加の依存ファイル」にlibprotobufd.libを追加します。
libprotobufd.lib
生成されるファイルは「libprotobuf.dll」に依存するため、exeが出力されるディレクトリに「libprotobuf.dll」を配置する必要があります。
Xcode(macOS)のプロジェクトの設定
ファイルの配置
「libprotobuf.a」をxcodeprojと同じフォルダーに配置します。
プロジェクトの設定
- 「PROJECT」→「Search Paths」→「Header Search Paths」に「/usr/local/include」を追加する
- 「TARGET」→「Library Search Paths」に「$(PROJECT_DIR)」を追加する
- プロジェクトに「libprotobuf.a」を追加する
静的リンクになるので、依存するファイルはありません。