AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

カスタムインストール:ソースからCドライバー ライブラリを構築

このページでは、ソースコードから libbson ライブラリと libmongoc ライブラリをダウンロード、解凍、構成、構築する方法について詳しく説明します。

Tip

追加情報

アドバイス(このもののようなもの)には、チュートリアルを完了するために必要ではない追加情報と説明的な詳細が含まれていますが、特定のチュートリアル手順の意味を説明したいと考える上位ユーザーには役立つ場合があります。

次のページでは、いくつかの名前付き変数を使用して、$VERSION などの構成情報を表します。 チュートリアルを開始する前に、これらの変数の値を選択する必要があります。 チュートリアルの手順で参照されている変数が表示されたら、その場所で値を置き換えてください。

Tip

ライブラリをビルドする前に、サポートされているプラットフォームでを実行中いることを確認してください。サポートされているプラットフォームのリストについては、互換性ページを参照してください。

開始する前に、ダウンロードする mongo-c-driver のバージョンを確認してください。使用可能なバージョンのリストは、Githubリポジトリタグ ページ で確認できます。このチュートリアルでは、現在のドライバー バージョン v1.30.13 について説明します。

このページの残りの部分で、 $VERSIONは、このチュートリアル用にビルドするmongo-c-driverのバージョン番号を示します。

次のいずれかの方法で mongo-c-driverソースコードを取得します。

重要

開発ブランチから構築するのではなく、安定版リリース バージョンのドライバーを使用することを強くお勧めします。 リポジトリのアーカイブをgit cloneまたはダウンロードする場合は、必ずリリース タグ(例: Git の--branch引数)を指定してください。

GitHub を使用して、GithubからCドライバーリポジトリをクローンできます。リリースバージョンの Git タグは、対応するバージョン(例:"1.30.13")。コマンドラインからリポジトリを複製するには、次のコマンドを使用します。

$ git clone https://github.com/mongodb/mongo-c-driver.git --branch="$VERSION" "$SOURCE"

Tip

名前に関係なく、git-clone コマンドの --branch オプションを使用して、リポジトリタグから複製できます。

Cドライバーリポジトリのアーカイブ スナップショットは、リポジトリのリリースページから取得できます。すべてのリリースには mongo-c-driver-x.y.z.tar.gz アーカイブが含まれています。これにはビルドに必要な最小限のファイルセットが含まれています。

## Download using wget:
$ wget "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/$VERSION.tar.gz" \
--output-document="mongo-c-driver-$VERSION.tar.gz"
## Extract using tar:
$ tar xf "mongo-c-driver-$VERSION.tar.gz"

上記のコマンドでは、それを実行したディレクトリ内に mongo-c-driver-$VERSIONディレクトリが作成されます。これはドライバー ソース ツリーのルートです。 このドキュメントでは、このディレクトリを $SOURCE として参照します。 $SOURCEディレクトリには最上位の CMakeLists.txtファイルが含まれています。

libmongoc と libbson プロジェクトを構成するには、CSpec をインストールする必要があります。プラットフォームで利用可能な最新の安定バージョンの Cake をダウンロードすることを強くお勧めします。

オペレーティング システムに対応するタブを選択し、手順に従って CSpec をダウンロードします。

  1. CSpec ダウンロード ページ にアクセスします。

  2. CMax .msi または .dmgファイルをダウンロードし、そのファイルを使用して Cake をインストールします。

このページでは、cmake が PATH 環境変数のコマンドとして使用でき、 シェルから "cmake" として実行できることを前提としています。 次のコードに示すように、コマンドラインから CMax に --version をリクエストすることで、これをテストできます。

cmake --version
cmake version 3.21.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).

注意

libbsonのみをビルドする場合は、CMax でビルドに十分です。 追加の C ドライバー機能には追加の外部依存関係のインストールが必要になる場合がありますが、ここではそれらは心配しません。

重要

If you are building with Xcode [1] or Visual Studio [2], you may need to execute CMake from within a special environment in which the respective toolchain is available.

名前$BUILDをパス$SOURCE/_buildにします。 これは、ビルドされたファイルが CSpec によって書き込まれるディレクトリになります。

$SOURCEとビルド ディレクトリ$BUILDのmongo-c-driverのソース ディレクトリがある場合、コマンドラインから次のコマンドを実行して、 libbsonとlibmongocの両方でプロジェクトを構成できます。

$ cmake -S $SOURCE -B $BUILD \
-D ENABLE_EXTRA_ALIGNMENT=OFF \
-D ENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF \
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
-D BUILD_VERSION="$VERSION" \
-D ENABLE_MONGOC=OFF

すべての依存関係が満たされている場合、上記のコマンドは成功し、次の結果で終了します。

$ cmake …
## … (Lines of output) …
-- Generating done
-- Build files have been written to: $BUILD

構成がエラーで失敗した場合、エラー メッセージと情報については CSpec 出力を参照してください。 続行する前に、構成が成功していることを確認してください。

Tip

これらの CSpec 引数はどのような意味を持ちますか。

BUILD_VERSIONは、ビルド結果に含めるバージョン番号を設定します。 これは、「 ソースの取得 」でダウンロードされたソース ドライバーのバージョンと同じ値に設定する必要があります。

ENABLE_EXTRA_ALIGNMENTとENABLE_AUTOMATIC_INIT_AND_CLEANUPはmongo-c-driverの一部であり、ABI 互換性の目的でのみデフォルトで有効になっている非推奨の機能に対応しています。 可能な場合は常にこれらの機能を無効にすることを強くお勧めします。

ENABLE_MONGOC=OFF引数はlibmongocのビルドを無効にします。 次のセクションでそれを構築します。

CMAKE_BUILD_TYPE 設定は、生成されるコードのバリアントを CMax に指示します。RelWithDebInfo の場合、最適化されたバイナリは生成されますが、デバッグ情報は引き続き含まれます。The CM存在_ビルド_タイプは、マルチコンフィギュレーションジェネレーター(つまり、Visual Studio)で、ビルドおよびインストール時に --config オプションに依存するようにします。

プロジェクトが正常に構成されたら、CMax を使用してビルドを実行できます。

$ cmake --build $BUILD --config RelWithDebInfo --parallel

正しく構成され、すべての依存関係が満たされている場合、上記のコマンドは構成されたコンポーネントのコンパイルとリンクに進みます。 上記のコマンドが失敗する場合は、環境にエラーがあるか、サポートされていないかテストされていないプラットフォームを使用している可能性があります。 詳細については、ビルド ツールの出力を参照してください。

Tip

--config オプション

--configオプションは、マルチ構成ジェネレーター(つまり、 Visual Studio)に書き込まれます。 これは、代わりにCMAKE_BUILD_TYPEを使用する他のジェネレーターには影響しません。

$PREFIXをパス$SOURCE/_installにします。 CSpec を使用してビルドされた結果をインストールできます。

$ cmake --install "$BUILD" --prefix "$PREFIX" --config RelWithDebInfo

このコマンドは、 mongo-c-driverのビルド結果を$PREFIXディレクトリにインストールします。

Tip

--config オプション

--config オプションは マルチコンフィギュレーション ジェネレーター( Visual Studio など)は、それ以外の場合は無視されます。 --config--config に指定された値は、cmake --build とともに指定された値と同じである必要があります。

Tip

ライブラリのバージョンの管理

MongoDB Cドライバーをソースから、またはパッケージマネージャーを使用してインストールすると、バージョン管理された名前とパスを使用するファイルがインストールされます。ドライバーをアップグレードするときにビルド構成を更新する必要がないようにするには、CSpec の find_package() コマンドなど、ビルド システムの標準の依存関係検出メカニズムを使用できます。ライブラリのファイル名やインストール パス全体をハードコーディングする代わりに、プラットフォームの共有ライブラリのシンボリック リンク規則を使用することもできます。

If you followed the above steps starting from Configuring for libbson, your final result with only contain libbson and not the full C database driver library. Building of libmongoc is enabled/disabled using the ENABLE_MONGOC CMake variable. Re-run CMake again, but set ENABLE_MONGOC to TRUE:

$ cmake -D ENABLE_MONGOC=ON -B $BUILD -S $SOURCE

If the above command succeeds, then the project has been reconfigured to build with libmongoc. Follow the process at Building the Project and Installing the Built Results again to build and install libmongoc.

[1]

Xcode でプロジェクトを構成してビルドする場合は、環境内で Xcode コマンドライン ツールをインストールし、使用できるようにする必要があります。 コマンドライン環境内から、次を実行します。

$ xcode-select --install

これにより、コンパイラーとリンクが$PATHで使用できるようになります。

[2]

Microsoft Visual C++ を使用してプロジェクトを構成およびビルドする場合は、CMake またはビルドコマンドを実行する際に Visual C++ ツールと環境変数を設定する必要がある場合があります。

多くの場合、CMake は Visual Studio のインストールを検出し、実行時に環境を自動的に読み込みます。この自動検出は、CMake の -G、-T、-A オプションで制御できます。-G オプションは、使用する Visual Studio のバージョンを選択するため、最も重要です。サポートされる Visual Studio のバージョンは、インストールされている CMake のバージョンによって異なります。サポートされる Visual Studio バージョンの一覧はこちらで確認できます。

より大きな制御とより多くのツーリングオプションを得るには、Visual Studio 開発者用PowerShell (推奨)または 開発者用コマンドプロンプト (レガシー)内からコマンドを実行することをお勧めします。

詳細については、Microsoft Visual Studio ドキュメントページの「Visual Studio 開発者コマンド プロンプトと開発者 PowerShell」および「コマンドラインから Microsoft C++ ツールセットを使用するを参照してください。