Mongocxx 从不同的 cpp 文件访问错误
Mongocxx accessing Error from different cpp file
我创建了一个 header mongo.h
它包含
mongocxx::instance inst{};
mongocxx::uri uri{ "link*****" };
mongocxx::client client{ uri };
我通过包含此从 main.cpp
访问了 mongodb
mongo.h
但是当将这个 header 包含到其他 cpp 文件时它 return 错误。
文档说实例必须创建一次。
我已阅读 http://mongocxx.org/api/current/classmongocxx_1_1instance.html
不完全理解,我不熟悉构造函数和析构函数,
任何 body 请帮助从每个 cpp 文件访问 mongodb。
这是一个很好的例子,说明单身人士可以提供帮助。
在 mongo.h
中,放置一个函数声明:
mongocxx::client& get_client();
在单个cpp文件中,定义函数如下:
mongocxx::instance inst{};
mongocxx::client& get_client() {
static mongocxx::client client{mongocxx::uri{ "link*****" };};
return client;
}
通过将它放在一个单独的 .cpp 文件中,您可以确保 inst
在 main
函数启动之前的某个时间创建。 get_client
中的 static
关键字确保客户端仅创建一次,即第一次调用 get_client
时。
我创建了一个 header mongo.h
它包含
mongocxx::instance inst{};
mongocxx::uri uri{ "link*****" };
mongocxx::client client{ uri };
我通过包含此从 main.cpp
访问了 mongodb
mongo.h
但是当将这个 header 包含到其他 cpp 文件时它 return 错误。
文档说实例必须创建一次。 我已阅读 http://mongocxx.org/api/current/classmongocxx_1_1instance.html 不完全理解,我不熟悉构造函数和析构函数, 任何 body 请帮助从每个 cpp 文件访问 mongodb。
这是一个很好的例子,说明单身人士可以提供帮助。
在 mongo.h
中,放置一个函数声明:
mongocxx::client& get_client();
在单个cpp文件中,定义函数如下:
mongocxx::instance inst{};
mongocxx::client& get_client() {
static mongocxx::client client{mongocxx::uri{ "link*****" };};
return client;
}
通过将它放在一个单独的 .cpp 文件中,您可以确保 inst
在 main
函数启动之前的某个时间创建。 get_client
中的 static
关键字确保客户端仅创建一次,即第一次调用 get_client
时。