LoginSignup
2
0

More than 5 years have passed since last update.

MongoDB C Driverのビルド(windows)

Last updated at Posted at 2019-03-02

MongoDBをCのアプリケーションから使うためのライブラリであるMongoDB C Driver (libmongoc)BSON library (libbson)のビルド手順。
公式を参考にした。

環境

  • windows8.1
  • Visual Studio Community 2017および2015
  • cmake 3.9.0

手順

ここから最新のmongo-c-driver-x.y.zを落とす。今回はmongo-c-driver-1.14.0.tar.gzを使用。

GitBashで実行する
tar -zxf mongo-c-driver-x.y.z
cd mongo-c-driver-x.y.z
mkdir cmake-build
cd cmake-build
GitBashで実行する
cmake -G "Visual Studio 15 2017 Win64" \
   "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" \
   "-DCMAKE_PREFIX_PATH=C:\mongo-c-driver" \
   ..

実行後、ALL_BUILD.vcxprojをはじめ、プロジェクトファイル等が生成される。

MSBuild.exeを使うので、MSBuild.exeがある場所のパスを環境変数に入れておく。筆者の場合は下記。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

試したことなど:

  • このあと、ALL_BUILD.vcxprojをビルドする。MSBuild.exeおよびVS2017でビルドしたが失敗。winsock2.hがないと言われる。
  • 生成されたプロジェクトファイルはインクルードディレクトリにC:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\um、ライブラリディレクトリにC:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x64を参照している。これらのディレクトリは筆者の環境にはなく、代わりに番号部分が10.0.15063.0のものがあった。
  • ALL_BUILD.vcxprojにこのパスを設定しても解決しなかった。生成されたプロジェクトすべて(50個ほど)に設定して試すのは気が引けたので、VS2015なら行けるかと思いそちらをインストール。
  • VS2015でも無理だった。しかし、
powershellで実行する
MSBuild.exe ALL_BUILD.vcxproj

ビルドに成功しました。
0 個の警告
0 エラー

ビルドに成功した。続けて、

powershellで実行する
msbuild.exe INSTALL.vcxproj`

ビルドに成功しました。
0 個の警告
0 エラー

経過時間 00:00:27.92

インストールできた。
生成されたライブラリ等のファイルはC:\mongo-c-driverにある。(CMAKE_INSTALL_PREFIXで設定されている場所)

振り返り

  • 今思えば、バージョン10.0.14393.0Windows 10 SDKをインストールしていれば2015なしでも行けそうな気がする。
  • VS2015をインストールしても先述のWindows Kits配下にバージョン10.0.14393.0のディレクトリができていなかったので、どこを参照してwinsock2.hを見つけたのか不明。
  • スペースを含む絶対パスをコマンドプロンプトに渡すときにエラーが出て困った。(結局は環境変数にパスを登録して回避した)
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0