mongodb c ++ driver-错误:“mongo :: client”尚未声明

时间:2014-12-22 22:42:50

标签: c++ mongodb

- 编译并成功安装mongo-cxx-driver(mongo db c ++ driver - 26Compat - 所有测试ok通过)。目录/ usr,所以/usrmongo/client/dbclient.h存在。

- 运行cmd:

g++ tutorial.cpp -pthread -lmongoclient -lboost_thread-mt -lboost_system -lboost_regex -lboost_filesystem -lboost_program_options -o tutorial

-file tutorial.cpp

#include <cstdlib>
#include <iostream>
#include "mongo/client/dbclient.h" // for the driver

void run() {
  mongo::DBClientConnection c;
  c.connect("localhost");
}

int main() {
    mongo::client::initialize();
    try {
        run();
        std::cout << "connected ok" << std::endl;
    } catch( const mongo::DBException &e ) {
        std::cout << "caught " << e.what() << std::endl;
    }
    return EXIT_SUCCESS;
}

结果 - 错误:

tutorial.cpp: In function ‘int main()’:
tutorial.cpp:11:12: error: ‘mongo::client’ has not been declared

任何提示?

1 个答案:

答案 0 :(得分:0)

不确定这会有什么帮助,但是在使用apt-get安装mongo-dev软件包之后我遇到了类似的错误。这不应该在mongo 2.6之后完成;它只适用于mongo 2.4或其他东西。它最终破坏了我的2.6,所以我不得不清理所有内容,重新安装mongo,然后根据他们的指示从github repo https://github.com/mongodb/mongo-cxx-driver构建mongo-cxx-driver。

之后eclipse仍然给出了教程的错误,但奇怪的是它确实构建了这个东西。我不得不清理那里的Debug和Release,最后只有一个警告,因为包含物被搞砸了。所以最后我废弃了eclipse项目,将教程文件复制到一个新项目,现在它构建干净。