[英]How to install and use mongodb c++ driver in Ubuntu?
官方文档似乎缺少有关安装和使用c ++驱动程序的分步说明。 这个线索和答案似乎更加挑衅。 但是我仍然不确定自己在做什么,因为我无法在Ubuntu
$ locate client/dbclient.h
,就像没有安装mongo驱动程序一样。 所以,这就是我所做的:
scons
$ sudo apt-get install scons
$ scons
然后 $ scons install
/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
一年后的注释:上面的许多链接现在已过时,并指向这些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.