c++连接mongodb出错

来源:互联网 发布:网络体系架构 编辑:程序博客网 时间:2024/06/05 04:28

上一篇好不容易编译出了mongoclient.lib http://blog.csdn.net/kuaile123/article/details/9963925

当c++连接mongodb时还是出了错。

按照网上写的简单的程序,出了错误,先记录一下,要不然哪天弄的时候又不记得了,也没查到有人有类似的错误。

添加了boost路径和boost/stage/lib

添加了js的路径

添加了mongo-cxx-driver\src

mongo-cxx-driver\src\mongo路径

还添加了附加依赖项

WS2_32.lib
Dbghelp.lib
mongoclient.lib

http://docs.mongodb.org/ecosystem/tutorial/download-and-compile-cpp-driver/#download-and-compile-cpp-driver

中说windows下

client/simple_client_demo.cpp 添加到项目中来保证链接正确。

 

#include "StdAfx.h"#include <iostream>#include "mongo/client/dbclient.h"#include "mongo/client/mongo_client_lib.cpp"using namespace mongo;using namespace std;using namespace bson;void run() {DBClientConnection c;c.connect("localhost");}int main() {try {run();cout << "connected ok" << endl;} catch( DBException &e ) {cout << "caught " << e.what() << endl;}return 0;}

出现错误1:无法打开mongo/client/dbclient.h

路径啥的都是对的,其他无法打开的直接在vs里面打开就不显示无法打开了,这个出现好几次,不记得是怎么解决这个问题的了。后面不出现这个问题了

2.某些文件authentication_table.cpp什么的无法打开,看目录下没有到github上下载放于指定目录下。

3.还有一些冲突问题,如在MSVCRTD.lib、msvcprtd.lib、LIBCMT.lib中 已定义的,在属性->连接器->输入 里面忽略这些库,这些问题没有了。

4.error LINK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:值“0”不匹配值“2”

这些错误显示在mongoclient.lib还有一些boost编译库里面都有。

大概意思是说 debug 下面用了release编译的lib。

怕是上次没下mongodb源码的问题,又下了mongodb源码对源码进行了编译。问题依旧。

查scons编译方法,

scons mode=release library=static

编译静态版本

scons mode=release library=shared

编译动态版本

动态和静态的mongoclient.lib都进行了编译,在release下用的是library=static版本的,debug下附加依赖项是添加的library=shared版本的,两个地址不同,附加依赖项里写不同的地址。

5.error C3861: “verify”: 找不到标识符还有一堆一堆的LOG、DEV之类的也是找不到标识符

其实这个都在某些.h或者.cpp文件中#define过了,这些文件都被#include到pch.h文件里,出错的文件也都#include "pch.h"了,不知道为什么找不到标示符,

考虑多次包含冲突,但是改成#ifndef #define #endif之后也没有变化。后在每个里面出错文件加#ifndef #define #endif不显示这些错误了。

但是出现了更多的错

问题太多不知道怎么解决了……

原创粉丝点击