繁体   English   中英

如何在Ubuntu中安装和使用mongodb c ++驱动程序?

[英]How to install and use mongodb c++ driver in Ubuntu?

官方文档似乎缺少有关安装和使用c ++驱动程序的分步说明。 这个线索和答案似乎更加挑衅。 但是我仍然不确定自己在做什么,因为我无法在Ubuntu $ locate client/dbclient.h ,就像没有安装mongo驱动程序一样。 所以,这就是我所做的:

  1. 在此链接下载驱动程序-ok
  2. 解压缩存档-确定
  3. 像这样安装scons $ sudo apt-get install scons
  4. 做了$ scons然后
  5. sudo $ scons install
  6. 打开/etc/ld.so.conf文件并添加/usr/local/lib

完成所有这些步骤后,我仍然无法在系统中找到client/dbclient.h 好像我错过了什么。 此外,当我进入安装库的阶段时,我想阅读该库的核心,因为在Web上的小教程中,我找不到想要的一切(我想是因为缺少完整的教程)类似于Python )。 因此,您能否也请建议我将使用哪些库文件来学习函数的api?

编辑

而且此官方链接似乎已过时,因为$ scons --full install导致错误消息No such option: --full 缺少教程,过时的文档以及陡峭的学习曲线恕我直言,这使c ++的使用出现了很多问题。

编辑

好吧,似乎这个文档不仅仅是过时的,而且是不正确的,因为它应该是:

scons --prefix=/usr/include install.

但是,即使我指定了--prefix=/usr/include ,安装过程后我也无法在此文件夹中找到任何mongo文件。 我面对的正是同样的问题,因为在这一个家伙线程 我猜,我的最后一个问题应该是“世界上是否有人在C ++中使用mongodb?”

编辑

如果我尝试去做

$ sudo git clone git@github.com:mongodb/mongo-cxx-driver.git

然后我Could not read from remote repository等。似乎他们做了一切工作,以防止在c ++中使用mongdb。

编辑 :这篇文章获得了大量的流量,但是描述了如何构建现在正式过期的“旧版C ++”驱动程序。 旧版C ++驱动程序已被新的C ++ 11驱动程序淘汰。 使用C ++编写将与MongoDB通信的客户端应用程序时,新的C ++ 11驱动程序应该是首选。 有关如何构建新的C ++ 11驱动程序的信息,请参见:

https://github.com/mongodb/mongo-cxx-driver/wiki/Quickstart-Guide-(新驱动程序)

可在C ++驱动程序的GitHub Wiki页面上找到构建驱动程序的现代说明。 请参阅以下内容:

https://github.com/mongodb/mongo-cxx-driver/wiki/Download-and-Compile-the-Legacy-Driver

https://github.com/mongodb/mongo-cxx-driver/wiki/教程

一年后的注释:上面的许多链接现在已过时,并指向这些github页面 该页面比上面的响应者所预期的要通用。 然后有一个指向本教程的指针,虽然很好,但是确实做了一些假设,即您的开发环境或多或少像mongo开发人员的一样。

即使在ubuntu 16.04上,航行也不如人们所愿。 立即阅读所有带有前缀“ Here be dragons”的内容。

几个值得注意的问题:

  • 本教程指向通过curl获取的特定文件,而不是指向github存储库并建议进行克隆。 这是过时的秘诀。 如果我告诉我的基础结构获取3.0.1版,它将很高兴永远做到这一点,而不是进行更新。 也就是说,从git编译似乎很好。

  • 前提条件是安装libmongoc。 看起来从标准ubuntu软件包安装就足够了,因为这就是所引用页面的内容。 但是mongocxx安装程序希望> = 1.3.4。 因此需要从git安装。

  • 它取决于libbson> = 1.3.4,此版本晚于ubuntu 16.04安装的版本。 因此,也需要从git安装它。

  • 请注意,所有git软件包都没有指定要获取生产版本的请求分支或标记。 查看master上的所有标签,并选择名称中没有“ rc”的数字最大标签。 名为“ release”或“ current”的标签会很普通。

  • 构建(键入make )尝试对子软件包EP_mnmlstc_core进行make安装,但失败。 因此,整个构建显然必须以root用户身份运行。

  • 起初,pkg-config在mongocxx上对我不起作用。 然后它做到了。 我想我做了一些微妙的错别字,我看不到回头,但我仍然看不到。 另外,发生了一些事情,因为它起作用了。

我的编译行是这样的:

g++ --std=c++11 c++-hello-world-v3.cc -o hw   \
    $(pkg-config --cflags --libs libmongocxx) \
    -Xlinker -rpath /usr/local/lib

我真的很想在mongo的github repo上提交所有这些文档问题。 不幸的是,他们禁用了问题跟踪器,而是将我指向他们的jira实例,并且那里似乎没有创建问题的权利。 (不过,有时我想念的是眼前的表情。)[更新:David Golden亲切地输入了错误信息,并指出了我可能也有这种感觉。]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM