VC++ で protobuf

研究室内で使うためのライブラリに protobuf を導入してみたところ,VC++ 用に protobuf をインストールする方法が分からないと苦情がきました.仕方がないので,インストール方法のような何かを作成してみました.

Visual Studio 2005 & 2008 では大丈夫だと思うのですが….

protobuf のインストール

アーカイブは,以下の URL にてダウンロードできます.最新版は右側の Featured downloads にあるので,protobuf-x.x.x.zip をダウンロードするとよいでしょう.

インストールの方法は,アーカイブを復元してできるディレクトリ protobuf-x.x.x/ 内の INSTALL.txt と README.txt に書いてありますが,Visual Studio を用いる場合は protobuf-x.x.x/vsprojects/readme.txt を参照する必要があります.後は指示に従ってビルドし,必要な実行ファイル・ライブラリ・ヘッダを取り出しましょう.

実行ファイル

protoc.exe はパスの通っている場所に配置しておくと便利です.以下では,D:/usr/bin にパスを通して使う方法を説明します.

  1. ディレクトリ D:/usr/bin を作成
  2. Release 版の protoc.exe を D:/usr/bin にコピー
  3. パスを設定
    • コンピュータのプロパティ -> システムの詳細設定 -> 環境変数 -> PATH の末尾に D:/usr/bin; と書き加える
ライブラリ

ライブラリについては,D:/usr/lib にコピーして使う方法を説明します.

  1. ディレクトリ D:/usr/lib を作成
  2. ビルド
    1. Visual Studio を起動して,protobuf-x.x.x/vsprojects/protobuf.sln をドラッグドロップ
    2. Debug 版をビルド(デフォルト)
      • protobuf-x.x.x/vsprojects/Debug/*.lib を D:/usr/lib にコピー
      • ファイル名を *.lib から *d.lib などに変更しておくと Release 版との使い分けが可能
    3. Release 版をビルド
      • protobuf-x.x.x/vsprojects/Release/*.lib を D:/usr/lib にコピー
  3. パスを設定
    • Visutal Studio を起動してツール -> オプション -> プロジェクトおよびソリューション -> VC++ ディレクトリ -> ディレクトリを表示するプロジェクト -> ライブラリ ファイル -> 新しい行 -> D:/usr/lib を追加
ヘッダ

extract_includes.bat で得られたヘッダについては,D:/usr/include にコピーして使う方法を説明します.

  1. ディレクトリ D:/usr/include を作成
  2. extract_includes.bat で生成されたディレクトリ include/ 内の ディレクトgoogle/ を D:/usr/include にコピー
  3. パスを設定
    • Visutal Studio を起動してツール -> オプション -> プロジェクトおよびソリューション -> VC++ ディレクトリ -> ディレクトリを表示するプロジェクト -> インクルード ファイル -> 新しい行 -> D:/usr/include を追加