我正在尝试在我的C ++示例代码中将mongdb与mongocxx驱动程序连接起来。我添加了附加包含,库和依赖项。当我构建它时,它显示以下错误。
这是完整的代码
#include "stdafx.h"
#include <cstdint>
#include <iostream>
#include <vector>
#include <bsoncxx/json.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
#include <mongocxx/stdx.hpp>
using bsoncxx::builder::stream::close_array;
using bsoncxx::builder::stream::close_document;
using bsoncxx::builder::stream::document;
using bsoncxx::builder::stream::finalize;
using bsoncxx::builder::stream::open_array;
using bsoncxx::builder::stream::open_document;
int main() {
std::cout << "Hello, World!" << std::endl;
mongocxx::instance instance{}; // This should be done only once.
mongocxx::uri uri("mongodb://localhost:27017");
mongocxx::client client(uri);
return 0;
}
thi
s是错误输出。
Severity Code Description Project File Line Suppression State
Error LNK1120 10 unresolved externals MongoCTest1 C:\Users\Nuwanst\source\repos\MongoCTest1\x64\Release\MongoCTest1.exe 1
Error (active) E0145 member "bsoncxx::v_noabi::types::b_array::type_id" may not be initialized MongoCTest1 c:\mongo-cxx-driver\include\bsoncxx\v_noabi\bsoncxx\types.hpp 181
Error (active) E0145 member "bsoncxx::v_noabi::types::b_binary::type_id" may not be initialized MongoCTest1 c:\mongo-cxx-driver\include\bsoncxx\v_noabi\bsoncxx\types.hpp 206
Error (active) E0145 member "bsoncxx::v_noabi::types::b_bool::type_id" may not be initialized MongoCTest1 c:\mongo-cxx-driver\include\bsoncxx\v_noabi\bsoncxx\types.hpp 264
Error (active) E0145 member "bsoncxx::v_noabi::types::b_code::type_id" may not be initialized MongoCTest1 c:\mongo-cxx-driver\include\bsoncxx\v_noabi\bsoncxx\types.hpp 421
Error (active) E0145 member C:\Users\Nuwanst\source\repos\MongoCTest1\MongoCTest1\MongoCTest1.obj 1
Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl mongocxx::v_noabi::instance::instance(void)" (__imp_??0instance@v_noabi@mongocxx@@QEAA@XZ) MongoCTest1 C:\Users\Nuwanst\source\repos\MongoCTest1\MongoCTest1\MongoCTest1.obj 1
Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl mongocxx::v_noabi::instance::~instance(void)" (__imp_??1instance@v_noabi@mongocxx@@QEAA@XZ) MongoCTest1 C:\Users\Nuwanst\source\repos\MongoCTest1\MongoCTest1\MongoCTest1.obj 1
Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl mongocxx::v_noabi::options::client::client(void)" (__imp_??0client@options@v_noabi@mongocxx@@QEAA@XZ) MongoCTest1 C:\Users\Nuwanst\source\repos\MongoCTest1\MongoCTest1\MongoCTest1.obj 1
Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl mongocxx::v_noabi::options::client::~client(void)" (__imp_??1client@options@v_noabi@mongocxx@@QEAA@XZ) MongoCTest1 C:\Users\Nuwanst\source\repos\MongoCTest1\MongoCTest1\MongoCTest1.obj 1
Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl mongocxx::v_noabi::uri::uri(class bsoncxx::v_noabi::string::view_or_value)" (__imp_??0uri@v_noabi@mongocxx@@QEAA@Vview_or_value@string@1bsoncxx@@@Z) MongoCTest1 C:\Users\Nuwanst\source\repos\MongoCTest1\MongoCTest1\MongoCTest1.obj 1
Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl mongocxx::v_noabi::uri::~uri(void)" (__imp_??1uri@v_noabi@mongocxx@@QEAA@XZ) MongoCTest1 C:\Users\Nuwanst\source\repos\MongoCTest1\MongoCTest1\MongoCTest1.obj 1
答案 0 :(得分:3)
它说的是它首先初始化你的驱动程序。如果您已正确编译驱动程序,则这些代码必须正常工作。
#include <cstdlib>
#include <iostream>
#include <bsoncxx/builder/stream/document.hpp>
#include <bsoncxx/json.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
using bsoncxx::builder::stream::close_document;
using bsoncxx::builder::stream::document;
using bsoncxx::builder::stream::finalize;
using bsoncxx::builder::stream::open_document;
mongocxx::instance instance{};// don't put inside main
int main() {
mongocxx::client conn{ mongocxx::uri{ "mongodb://localhost:27017" } };
auto coll = conn["test"]["coll"];
bsoncxx::builder::stream::document document{};
document << "Data" << "hello";
coll.insert_one(document.view());
return 0;
}
答案 1 :(得分:-1)
根据此example,驱动程序在main内部启动。