c++连接mongodb出错
上一篇好不容易編譯出了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不顯示這些錯誤了。
但是出現了更多的錯
問題太多不知道怎么解決了……
總結
以上是生活随笔為你收集整理的c++连接mongodb出错的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速排序 C++
- 下一篇: c++ 出现1.#IND、1.#INF