c++ - MongoDB C++ 驱动程序 - 未解析的外部符号

标签 c++ mongodb unresolved-external mongo-c-driver

我正在尝试运行 MongoDB C++ 驱动程序的示例程序,以便我可以运行一些测试,但遇到了一些我卡住的错误。

Error   1   error LNK2019: unresolved external symbol "__declspec(dllimport)     public: __thiscall mongo::DBClientConnection::DBClientConnection(bool,class     mongo::DBClientReplicaSet *,double)" (__imp_??0DBClientConnection@mongo@@QAE@_NPAVDBClientReplicaSet@1@N@Z) referenced in function "void __cdecl run(void)" (?run@@YAXXZ)  E:\Programming\C++\BoostTest\BoostTest\BoostTest\Testcpp.obj    BoostTest

Error   2   error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall mongo::DBClientConnection::~DBClientConnection(void)" (__imp_??1DBClientConnection@mongo@@UAE@XZ) referenced in function "void __cdecl run(void)" (?run@@YAXXZ) E:\Programming\C++\BoostTest\BoostTest\BoostTest\Testcpp.obj    BoostTest

Error   3   error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall mongo::DBClientConnection::connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?connect@DBClientConnection@mongo@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "void __cdecl run(void)" (?run@@YAXXZ)   E:\Programming\C++\BoostTest\BoostTest\BoostTest\Testcpp.obj    BoostTest

这是代码

#include <cstdlib>
#include <iostream>
#include "mongo\client\dbclient.h"

#define BOOST_ALL_DYN_LINK

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

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

在任何人询问之前,我已经引用了 Boost 库和 header ,它们似乎工作正常。我还引用了 Mongo 库和 header 。

Additional Include Directories: Boost and Mongo Source

Linker Additional Library Directories: boost/stage/lib and Mongo build client

有人知道吗?我是否必须在附加依赖项中包含 dbclient.obj 文件?当我这样做时,我得到了 96 个新错误。我想我可能缺少一些 .dll,但不知道是什么。

感谢任何帮助,因为这只是一个更大项目的一小部分。

最佳答案

尝试:

  1. 32 位与 64 位不匹配。
  2. 我在对旧库使用 MS VC 编译器时遇到了类似的问题。解决方案是获取最新的库。

关于c++ - MongoDB C++ 驱动程序 - 未解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634336/

相关文章:

Java 颜色对象和 mongoDB

c++ - DLIB On visual studio 2015 抛出 Unresolved external 错误

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

C++11 - 构造函数继承

c++ - std::deque<char> 上的简单插入-删除-插入给出了奇怪的结果

c++ - 从被移出的对象 move

mongodb - 如何向 bson.D 对象添加值

mongodb - golang mongo-db 事务无法创建命名空间

c++ - 什么是 undefined reference /未解析的外部符号错误,我该如何解决?

c++ - 将不带复制构造函数的类的成员函数指针传递给 Fortran