我想从我的C ++应用程序中使用MongoDB,我已经从Git下载了MongoDb二进制版本3.0.5和旧版C ++驱动程序版本1.0.5并安装了它们。
我使用以下代码跟踪instruction:
#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
一些想法?
答案 0 :(得分:1)
使用为C ++ 03(默认)编译的旧版驱动程序和使用C ++ 11 / C ++ 14编译的应用程序代码时,我可以重现相同的行为。它始终是段错误的,有时也会写相同的消息(取决于优化级别)。请参阅mongo website上的相关错误。
解决方案是:
-std=c++03
)对于驱动程序中的C ++ 11支持,只需将--c++11=on
传递给scons
。
scons --c++11=on install
使用GCC 4.9.1进行测试