このページでは、 libbsonとlibmongocを元のソースコード形式からダウンロード、解凍、構成、構築する方法について詳しく説明します。
Tip
追加情報
ドロップダウン(このドロップダウンのような)には、チュートリアルを完了するために必要ではない追加情報と説明的な詳細が含まれていますが、特定のチュートリアル手順の意味を説明する必要がある上位ユーザーには役立つ場合があります。
次のページでは、事前に決定する必要があるいくつかの名前付き「変数」を使用します。 チュートリアルのステップで参照されている値が参照されている場合は、その値をそのステップに置き換える必要があります。
Tip
を構築する前に、サポートされているプラットフォームで実行していることを確認する必要がある場合があります。 サポートされているプラットフォームのリストについては、 mongo-c-Driver プラットフォーム サポートページを参照してください。
バージョンの選択
開始する前に、ダウンロードする mongo-c-driver のバージョンを確認してください。使用可能なバージョンのリストは、 Githubリポジトリタグ ページ で確認できます。(このドキュメントに記載されている現在のバージョンは 1.28.0 です。)
このページの残りの部分で、 $VERSIONは、このチュートリアル用にビルドするmongo-c-driverのバージョン番号を示します。
ソースの取得
mongo-c-driverソースコードを取得するには、主に次の 2 つの方法があります。
重要
開発ブランチから構築するのではなく、安定版リリース バージョンのドライバーを使用することを強くお勧めします。 リポジトリのアーカイブをgit cloneまたはダウンロードする場合は、必ずリリース タグ(例: Git の--branch引数)を指定してください。
Git を使用したダウンロード
Github を使用して、 CドライバーリポジトリはGithub URL https://github.com/mongodb/mongo-c-Driver.git からクローンできます。リリースバージョンの 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ファイルが含まれている必要があります。
前提条件の取得
プロジェクトをビルドするには、いくつかの前提条件が利用可能である必要があります。
libmongoc プロジェクトと libbson プロジェクトはどちらもビルド構成に CSpec を使用しています。
注意
プラットフォームで使用可能な最新の安定した 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 スクリプトに渡すと、詳細な情報が表示されます。
このページの残りの部分では、 cmakeがPATH環境変数のコマンドとして使用でき、shell から「 cmake 」として実行できることを前提とします。 これは、コマンドラインから CSpec に--versionをリクエストすることでテストできます。
$ cmake --version cmake version 3.21.4 CMake suite maintained and supported by Kitware (kitware.com/cmake).
注意
libbsonのみをビルドする場合は、CMax でビルドに十分です。 追加の C ドライバー機能には追加の外部依存関係のインストールが必要になる場合がありますが、ここではそれらは心配しません。
libbson の構成
重要
名前$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
上記のスニペットは、ソース ディレクトリ自体のサブディレクトリにmongo-c-driverをインストールしますが、これは通常のワークフローではありません。 mongo-c-driverの構成と構築に問題がなければ、 「 ソースから libbson/libmongoc をインストールする方法 」のページで、ソースからのインストール オプションについて詳しく説明します。
libmongoc による構成
libbson 用の構成から上記の手順に沿った場合、 を含む最終結果にはlibbsonのみが含まれ、完全な C データベース ドライバー ライブラリは含まれません。 libmongocのビルドは、 ENABLE_MONGOC Cake 変数を使用して有効または無効にします。 CMax を再度実行しますが、 ENABLE_MONGOCをTRUEに設定します。
$ cmake -D ENABLE_MONGOC=ON $BUILD
上記のコマンドが成功した場合、プロジェクトはlibmongocで構築するように再構成されました。 プロジェクトをビルドし、ビルド結果を再度インストールするのプロセスに従って、 libmongocをビルドしてインストールします。
脚注
| [1] | Xcode でプロジェクトを構成してビルドする場合は、環境内で Xcode コマンドライン ツールをインストールし、使用できるようにする必要があります。 コマンドライン環境内から、次を実行します。$PATHで使用できるようになります。 |
| [2] | プロジェクト、環境自体が実行される場合 この自動検出は、CMax の -G、-T、-A オプションで制御できます。-G オプションは、使用される Visual Studio バージョンを選択するため、最も重要です。サポートされている Visual Studio のバージョンは、インストールされている CSpec のバージョンによって異なります。サポートされている Visual Studio バージョンのリストは、こちらから確認できます。より優れた制御とツール オプションを使用するには、Visual Studio 開発者 PowerShell(推奨)または開発者コマンド プロンプト(レガシー)内から コマンドを実行することをお勧めします。詳細については、Visual Studio 開発者コマンド プロンプトおよび開発者 PowerShell と の使用を参照してください。 Microsoft Visual Studio ドキュメント ページのコマンドラインからMicrosoft C++ツールセットを実行します。 |