いくつかのテストを実行できるように、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 ライブラリとヘッダーを参照しましたが、正常に動作しているようです。Mongo ライブラリとヘッダーも参照しました。
Additional Include Directories: Boost and Mongo Source
Linker Additional Library Directories: boost/stage/lib and Mongo build client
誰にも手がかりはありますか?追加の依存関係に dbclient.obj ファイルを含める必要がありますか? 私がそうすると、96個の新しいエラーが発生します。いくつかの .dll が欠落している可能性があると思いますが、何が原因かわかりません。
これははるかに大きなプロジェクトのほんの一部であるため、何か助けていただければ幸いです。