Docs Menu
Docs Home
/ / /
C ドライバー

ソースから C ドライバー ライブラリを構築

項目一覧

  • バージョンの選択
  • ソースの取得
  • Git を使用したダウンロード
  • リリース アーカイブのダウンロード
  • 前提条件の取得
  • libbson の構成
  • プロジェクトを構築する
  • ビルド結果のインストール
  • libmongoc による構成
  • 脚注

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

Tip

追加情報

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

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

Tip

以下も参照してください。

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

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

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

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

  • を使用してリポジトリをクローンします(推奨)。詳細については、「 Git を使用したダウンロード 」を参照してください。git

  • 特定のバージョンのソース アーカイブをダウンロードします。詳細については、「 リリースアーカイブのダウンロード 」を参照してください。

重要

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

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

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

## Using curl:
$ curl "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/$VERSION.tar.gz" \
--output="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ファイルが含まれています。

## Use Invoke-WebRequest:
PS> $url = "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/$VERSION.zip"
PS> $file = "mongo-c-driver-$VERSION.zip"
PS> Invoke-WebRequest -UseBasicParsing -Uri $url -OutFile $file
## Extract using Expand-Archive:
PS> Expand-Archive mongo-c-driver-$VERSION.zip

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

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

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

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

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

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

  2. 自己抽出型シェルスクリプトをダウンロードします。これは .sh で終了します。

  3. sh ユーティリティを使用し、インストールを実行するための適切な引数を渡してスクリプトを実行します。例、x86_64 プラットフォーム上の CSpec 3.27.0 で次のコマンドを実行します。

    sh cmake-3.27.0-linux-x86_64.sh --prefix="$HOME/.local" --exclude-subdir --skip-license

    $HOME/.local/bin$PATHリストにあると仮定すると、 3.27.0のcmakeコマンドが使用可能になります。

    --helpオプションを shell スクリプトに渡すと、詳細な情報が表示されます。

このページでは、cmakePATH 環境変数のコマンドとして使用でき、 シェルから「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 ]を使用してビルドしている場合は、それぞれのツールチェーンが利用可能な特別な環境内から CMax を実行する必要がある場合があります。

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

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

$ 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_ALIGNMENTENABLE_AUTOMATIC_INIT_AND_CLEANUPmongo-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 とともに指定された値と同じである必要があります。

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

$ cmake -D ENABLE_MONGOC=ON $BUILD

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

[1] Xcode でプロジェクトを構成してビルドする場合は、環境内で Xcode コマンドライン ツールをインストールし、使用できるようにする必要があります。 コマンドライン環境内から、次を実行します。
$ xcode-select --install
これにより、コンパイラーとリンクが$PATHで使用できるようになります。
[2] Microsoft Visual C++ を使用してプロジェクトを構成してビルドする場合は、C# またはビルド コマンドを実行するときに Visual C++ ツールと環境変数を設定する必要がある場合があります。多くの場合、CSpec は Visual Studio のインストールを検出し、次を自動的にロードします:環境自体が実行される場合 この自動検出は、CMax の-G-T 、および-Aオプションで制御できます。 -Gオプションは、使用される Visual Studio バージョンを選択するため、最も重要です。 サポートされている Visual Studio のバージョンは、インストールされている CSpec のバージョンによって異なります。 サポートされている Visual Studio バージョンのリストは、こちらから確認できます。 より優れた制御とツール オプションについては、Visual Studio 開発者 PowerShell (推奨)または 開発者コマンド プロンプト (レガシー)内から コマンドを実行することをお勧めします。詳細については、「 Visual Studio 開発者コマンド プロンプト 」および「 開発者 PowerShell 」を参照してください。 および コマンドラインから Microsoft C++ ツールセットを使用 Microsoft Visual Studio ドキュメント ページ

戻る

データ集計