美文网首页MongoDBC++程序员
MacOS下配置MongoDB C++ Driver

MacOS下配置MongoDB C++ Driver

作者: 佳斐猫 | 来源:发表于2017-04-24 11:56 被阅读148次

注:我的配置过程参照《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

配置安装过程如下:

  1. 安装XCode命令行工具

     $ xcode-select --install
    
  2. 使用Homebrew安装编译配置工具

     $ brew install automake autoconf libtool pkgconfig
    
  3. 下载解压libmongoc源码

     $ tar xzf mongo-c-driver-1.6.2.tar.gz
     $ cd mongo-c-driver-1.6.2
    
  4. 编译安装

     $ ./configure
     $ make
     $ sudo make install
    

2 下载mongocxx driver

官方文档中提供了两种方式下载驱动,一种是从github上clone源码,另一种是从release页面下载。

我采用的是从github上clone最新的稳定版源码:

git clone https://github.com/mongodb/mongo-cxx-driver.git \
--branch releases/stable --depth 1

3 cmake配置

默认情况下第一步中的libmongoc库会安装在<code>/usr/local</code>下,如果libmongoc没有安装在默认路径,则cmake配置需要配置<code>PKG_CONFIG_PATH</code>和<code>DCMAKE_INSTALL_PREFIX</code>

此外,cmake的配置还需要针对不同系统选择<code>polyfill</code>,例如我的系统是MacOS,配置的选项选择<code>-DBSONCXX_POLY_USE_MNMLSTC=1</code>。

配置如下:

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 <iostream>

#include <bsoncxx/builder/stream/document.hpp>
#include <bsoncxx/json.hpp>

#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>

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模式的问题,解决方法是在命令行运行:<code>sudo chown -R $(whoami) /usr/local</code>命令可解决。

相关文章

网友评论

    本文标题:MacOS下配置MongoDB C++ Driver

    本文链接:https://www.haomeiwen.com/subject/ijzuzttx.html