MongoDB初始化失败,DuplicateKey
MongoDB initialize failed, DuplicateKey
我想从我的c++应用程序中使用MongoDB,我已经从Git下载了MongoDB二进制版本3.0.5和遗留的c++驱动版本1.0.5,并安装了它们。
我按照指示写了下面的代码:
#include <cstdio>
#include <mongo/bson/bson.h>
#include <mongo/client/dbclient.h>
int main(int argc, char *argv[])
{
mongo::Status status = mongo::client::initialize();
return 0;
}
编译和运行后,我得到以下消息:
Attempt to add global initialiser failed, status: DuplicateKey GlobalLogManager Abort
当使用c++ 03(默认)编译的旧驱动程序和c++ 11/c++ 14编译的应用程序代码时,我可以重现相同的行为。它总是分段错误,有时写相同的消息(取决于优化级别)。查看mongo网站上的相关bug。
解决方案是:
- 用c++ 03 (
- 重新编译支持c++ 11的驱动程序。
-std=c++03
)编译你的代码对于c++ 11驱动程序的支持,只需将--c++11=on
传递给scons
。
scons --c++11=on install
使用GCC 4.9.1测试
相关文章:
- 如果没有malloc,链表实现将失败
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- 视图中的参数推导失败:take_while
- 链接到自行创建的dll失败
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- gcc和c++17的过载解析失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 从父数组测试用例构造二叉树失败
- LibGit2 SSH身份验证失败
- 如何让LLDB在成功时退出,在失败时等待
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- 生成MRPT库时cmake配置失败
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- MongoDB初始化失败,DuplicateKey