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リポジトリタグ ページで確認できます。このチュートリアルでは、現在のドライバー バージョン v.. について説明します。13013

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

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

重要

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

GitHub からCドライバーリポジトリを複製するには Git1 3013を使用します。リリースされたバージョンの Git タグは、対応するバージョンにちなんで命名されます(例: ".."")。コマンドラインからリポジトリを複製するには、次のコマンドを使用します。

$ 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ファイルが含まれています。

と プロジェクトを構成するには、CSpeclibmongoclibbson をインストールする必要があります。プラットフォームで利用可能な最新の安定バージョンの 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 ドライバー機能には追加の外部依存関係のインストールが必要になる場合がありますが、ここではそれらは心配しません。

重要

Xcode []1 または Visual Studio []2 を使用してビルドしている場合は、それぞれのツールチェーンが利用可能な特別な環境内から CSpec を実行する必要がある場合があります。

名前$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 の場合、最適化されたバイナリは生成されますが、デバッグ情報は引き続き含まれます。 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() コマンドなど、ビルド システムの標準の依存関係検出メカニズムを使用できます。ライブラリのファイル名やインストール パス全体をハードコーディングする代わりに、プラットフォームの共有ライブラリのシンボリック リンク規則を使用することもできます。

libbson の 構成 から上記の手順に沿った場合、 を使用する最終結果には のみが含まれ、完全なCデータベースドライバー ライブラリは含まれません。libbsonlibmongoc ENABLE_MONGOCのビルドは、 Cake 変数を使用して有効または無効にします。 CSpec を再度実行しますが、ENABLE_MONGOC を に設定します。TRUE

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

上記のコマンドが成功した場合、プロジェクトはlibmongoc で構築するように再構成されました。 「プロジェクトをビルドし、ビルド結果を再度インストールする」のプロセスに従って、 libmongocをビルドしてインストールします。

[1 ]

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

$ xcode-select --install

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

[2 ]

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

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

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

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