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

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

項目一覧

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

このページでは、 libbsonlibmongocを元のソースコード形式からダウンロード、解凍、構成、構築する方法について詳しく説明します。

Tip

追加情報

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

次のページでは、事前に決定する必要があるいくつかの名前付き「変数」を使用します。 チュートリアルのステップで参照されている値が参照されている場合は、その値をそのステップに置き換える必要があります。

Tip

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

を構築する前に、サポートされているプラットフォームで実行していることを確認する必要がある場合があります。 サポートされているプラットフォームのリストについては、 mongo-c-Driver プラットフォーム サポートページを参照してください。

開始する前に、ダウンロードするmongo-c-driverのバージョンを確認してください。 使用可能なバージョンのリストは、 Githubリポジトリ タグ ページ で確認できます 。(このドキュメントに記載されている現在のバージョンは1です。 28 . 0 。)

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

mongo-c-driverソースコードを取得するには、主に次の 2 つの方法があります。

  1. gitを使用してリポジトリをクローンする(推奨)。 (以下参照)

  2. 特定のバージョンのソース アーカイブをダウンロードします。 (以下参照)

重要

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

Github を使用すると、C ドライバー リポジトリは Github URL https://github.com/mongodb/mongo-c-Driver.github URL からクローンできます。 。リリースバージョンの Git タグは、対応するバージョン(例: 「 1 . 28 . 0 」)。 コマンドラインを使用してリポジトリをクローンするには、次のコマンドを使用できます。

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

Tip

名前に関係なく、 git-clone--branch引数は リポジトリタグからのクローンにも使用できます。

リポジトリのアーカイブされたスナップショットは、Github リリース ページ から取得できます 。任意のリリースに添付されている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"
## 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"
## 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

上記のコマンドでは、 tar / Expand-Archiveコマンドを実行したディレクトリ内に新しいディレクトリmongo-c-driver-$VERSIONが作成されます(: PowerShell では同じ名前の追加の中間サブディレクトリが作成されます)。 このディレクトリは、ドライバー ソース ツリーのルートです(これらのドキュメントでは$SOURCEと参照します)。 $SOURCEディレクトリには最上位のCMakeLists.txtファイルが含まれている必要があります。

プロジェクトをビルドするには、いくつかの前提条件が利用可能である必要があります。

libmongoclibbson の両方のプロジェクトで Cake が使用されています ビルド構成用。

注意

プラットフォームで使用可能な最新の安定した CMax をダウンロードすることを強くお勧めしますが、必須ではありません。

Tip

最新の CMax を取得する

CMax の新しい安定版リリースは 、CSpec ダウンロード ページ から取得できます。

Windows と macOS の場合は、単純に CSpec .msi / .dmg.zip / .tar.gzではない)をダウンロードし、それを使用して Cake をインストールします。

Linux では、自己抽出型 shell スクリプト( .shで終了)をダウンロードし、 shユーティリティを使用して実行し、インストールを実行するための適切な引数を渡します。 たとえば、 x86_64プラットフォーム上の CSpec 3.27.0では、 cmake-3.27.0-linux-x86_64.shスクリプトで次のコマンドを使用できます。

$ 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環境変数のコマンドとして使用でき、shell から「 cmake 」として実行できることを前提とします。 これは、コマンドラインから CSpec に--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 とともに指定された値と同じである必要があります。

Tip

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

上記のスニペットは、ソース ディレクトリ自体のサブディレクトリにmongo-c-driverをインストールしますが、これは通常のワークフローではありません。 mongo-c-driverの構成と構築に問題がなければ、 「 ソースから libbson/libmongoc をインストールする方法 」のページで、ソースからのインストール オプションについて詳しく説明します。

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 ドキュメント ページ

戻る

MongoDB C ドライバー ライブラリの取得