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 文件中,您可以确保 instmain 函数启动之前的某个时间创建。 get_client 中的 static 关键字确保客户端仅创建一次,即第一次调用 get_client 时。