【问题标题】:how to install mongodb drivers for c++ in ubuntu?如何在 ubuntu 中为 c++ 安装 mongodb 驱动程序?
【发布时间】:2012-09-11 11:40:18
【问题描述】:

我想使用 c++ 为 mongoDB 开发一个相当简单的应用程序,我按照他们的教程进行操作: http://www.mongodb.org/pages/viewpage.action?pageId=133415

为了安装驱动程序,我遵循了这个: https://groups.google.com/forum/?fromgroups=#!msg/mongodb-user/-mPG7MDJgm8/nZSiN42DJWIJ (Waitman Gobble/5 月回答)

但是当我尝试编译一个简单的应用程序时,我会收到以下错误:

致命错误:client/dbclient.h:没有这样的文件或目录

我很确定问题是尚未安装 MongoDB c++ 驱动程序。

如何正确安装?

【问题讨论】:

  • 你的项目路径中是否包含路径?
  • 不确定你在说什么路径:-?
  • 但我设法使用:[sudo scons install] 现在它安装在“/usr/local/include/mongo/”上安装编译的驱动程序,但是当我尝试编译教程时,我会得到同样的错误

标签: c++ mongodb


【解决方案1】:

如果你从here下载驱动源代码,

解压解压

tar xzf mongodb-linux-x86_64-v2.0-latest.tgz 

然后 cd 进入目录。

cd mongo-cxx-driver-v2.0/

然后使用scons构建

scons

并安装

sudo scons install

然后要编译tutorial 中显示的代码,您还需要指定/usr/local/include/mongo 目录作为包含文件搜索路径。

sudo  g++ tutorial.cpp -I/usr/local/include/mongo -lmongoclient 
-lboost_thread -lboost_filesystem -lboost_program_options -o tutorial

然后要运行它,您需要编辑 /etc/ld.so.conf 文件

sudo vi /etc/ld.so.conf 

并添加

/usr/local/lib

然后运行

sudo ldconfig

然后运行教程

$ ./tutorial 
connected ok

作为编辑 ld.so.config 文件的替代方法,您可以使用 LD_LIBRARY_PATH 环境变量。所以你会这样做

export LD_LIBRARY_PATH=/usr/local/lib
$ ./tutorial 
connected ok

【讨论】:

  • 终于得到了错误,我必须从这里stackoverflow.com/questions/9723793/… 将“boost_system”链接到 g++。如果您是 mongoDB 贡献者之一或认识他们,只需告诉他们他们的文档已经过时了!最好改变他们的方法,否则他们很快就会被取代。
【解决方案2】:

在 Ubuntu 中,用于开发的包与用于一般用途的包是分开的。

为了使用 mongodb 头文件和客户端库,您需要 sudo apt-get install mongodb-dev libmongo-client-dev - 这会添加允许您使用 #include 相关头文件的头文件。

这假设您已经安装了包含客户端库的 libmongo-clientmongodb 软件包,尽管在安装 -dev 软件包时应该安装它们。

【讨论】:

    猜你喜欢
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多