MacOSでMongoDB C++Driverを設定

2896 ワード

注意:私の構成プロセスは『Installing the mongocxx driver』の公式ドキュメントを参照して完成し、私の本機の構成プロセスを記録し、プロセス中に漏れがある可能性があるので、完全な構成プロセスは、公式構成ドキュメントを参照して行うことをお勧めします.
1 MongoDB C Driverのインストール
mongocxxドライバはMongoDB Cのドライバに依存するため、まずMongoDB C Driverをインストールする必要があります.
  • 対3.1.xバージョンのmongocxxは1.5インストールする必要があります.0以上のlibmongoc
  • は3.0である.xバージョンのmongocxxは最新の1.4を推奨する.xバージョンlibmongoc
  • インストール手順は次のとおりです.
  • XCodeコマンドラインツール
     $ xcode-select --install
    
  • をインストール
  • Homebrewインストールコンパイル構成ツール
     $ brew install automake autoconf libtool pkgconfig
    
  • を使用
  • ダウンロード解凍libmongocソース
     $ tar xzf mongo-c-driver-1.6.2.tar.gz
     $ cd mongo-c-driver-1.6.2
    
  • コンパイルインストール
     $ ./configure
     $ make
     $ sudo make install
    
  • 2 mongocxx driverのダウンロード
    公式ドキュメントにはgithubからcloneソースコードをダウンロードする方法とreleaseページからダウンロードする方法の2つがあります.
    githubからcloneの最新の安定版ソースコードを採用しています.
    git clone https://github.com/mongodb/mongo-cxx-driver.git \
    --branch releases/stable --depth 1
    

    3 cmake構成
    デフォルトでは、最初のステップのlibmongocライブラリは/usr/localにインストールされます.libmongocがデフォルトパスにインストールされていない場合は、cmake構成にはPKG_CONFIG_PATHDCMAKE_INSTALL_PREFIXの構成が必要です.
    さらに、cmakeの構成は、異なるシステムに対してpolyfillを選択する必要があります.例えば、私のシステムはMacOSであり、構成のオプションは-DBSONCXX_POLY_USE_MNMLSTC=1を選択します.
    次のように構成されています.
    cmake -DCMAKE_BUILD_TYPE=Release -DBSONCXX_POLY_USE_MNMLSTC=1 \
    -DCMAKE_INSTALL_PREFIX=/usr/local ..
    

    4コンパイルインストール
    Windows以外のプラットフォームでは、デフォルトのMNMLSTC polyfillを使用して、MNMLSTCのコアコンポーネントを追加コンパイルしてインストールする必要があります.
    sudo make EP_mnmlstc_core
    

    その後mongocxx driverをコンパイルしてインストールすればいいです.
    make && sudo make install
    

    これでドライバ全体のインストールが完了し、使用時に対応するコンパイルオプションを追加すればよい.
    5テスト
    公式提供テストコード:
    #include 
    
    #include 
    #include 
    
    #include 
    #include 
    
    int main(int, char**) {
        mongocxx::instance inst{};
        mongocxx::client conn{mongocxx::uri{}};
    
        bsoncxx::builder::stream::document document{};
    
        auto collection = conn["testdb"]["testcollection"];
        document << "hello" << "world";
    
        collection.insert_one(document.view());
        auto cursor = collection.find({});
    
        for (auto&& doc : cursor) {
            std::cout << bsoncxx::to_json(doc) << std::endl;
        }
    }
    

    pkg-configを使用してコンパイル:
    c++ --std=c++11 test.cpp -o test $(pkg-config --cflags --libs libmongocxx)
    

    エラーが報告されていない場合は、テストに成功します.具体的なデータベース操作は、公式mongo apiを参照してください.
    注意:Homebrewインストールツールを使用すると、権限またはsudoモードを使用できないという問題が発生する可能性があります.解決策は、コマンドラインで実行されるsudo chown -R $(whoami) /usr/localコマンドで解決できます.