日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VS2010 C++下编译调试MongoDB“.NET研究”源码

發(fā)布時(shí)間:2023/12/4 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2010 C++下编译调试MongoDB“.NET研究”源码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
考慮到mongodb使用了boost庫源碼,參考mongodb官方文檔后,下載編譯boost版本是1.42(時(shí)間為2010-2-2)或更新版本:
  boost版本1.42:
  http://sourceforge.net/projects/boost/files/boost/1.42.0/boost_1_42_0.zip/download??? ??
  下載boost源碼之后,我把boost解壓在D盤。
  1.在D:\boost_1_42_0\下找到該批處理文件bootstrap.bat,以vs2010命令行方式運(yùn)行它,并最終生成bjam.exe可執(zhí)行文件(詳細(xì)結(jié)果及錯(cuò)誤信息見生成的bjam.log日志)。??? ?
  2.將生成的bjam.exe文件拷貝到“D:\boost_1_42_0”目錄下,運(yùn)行下面命令行:
bjam stage variant=debug --stagedir=上海網(wǎng)站建設(shè)"上海閔行企業(yè)網(wǎng)站制作>d:\boost_1_42_0" --with-filesystem --with-thread --with-date_time --with-program_options --layout=versioned threading=multi toolset=msvc-10.0 如下圖:???   注:i.如果要生成release鏈接庫文件,需將上面的variant設(shè)置成release,形如:
      bjam stage variant=release .....??? ?
  ????? ii.如果要全部生成使用下面編譯選項(xiàng)
      bjam ......? --build-type=complete
  編譯過程可能會(huì)用一些時(shí)間,最終會(huì)在"D:\boost_1_42_0" 生成一個(gè)lib目錄,里面包括剛生成的庫文件。
  3.下載已用vs2010編譯的SpiderMonkey庫文件及源碼包,并將其解壓到D盤下,下載鏈接:
  https://github.com/dwight/vc2010_js
  將該文件夾名稱改為“js”(因?yàn)閙o上海企業(yè)網(wǎng)站制作ngodb項(xiàng)目會(huì)默認(rèn)指定該路徑尋找可用的lib及c源文件),如下圖:????   說明:SpiderMonkey是由C語言操作的JavaScript引擎,它支持JS1.4和ECMAScript-262規(guī)范。該引擎分析、編譯和執(zhí)行腳本,根據(jù)JS數(shù)據(jù)類型和對(duì)象的需要進(jìn)行內(nèi)存分配及釋放操作。目前它是Mozilla項(xiàng)目的一部分。可通過下面鏈接了解更多信息:
  https://develo上海徐匯企業(yè)網(wǎng)站制作per.mozilla.org/en/SpiderMonkey
  源碼下載鏈接:
  https://developer.mozilla.org/En/SpiderMonkey/Getting_SpiderMonkey_source_code
  另外如何使用spidermonkey參見:
  http://www.ibm.com/developerworks/cn/linux/shell/js/js_engine/??
  4.接下來下載并解壓mongod源碼包(本人下載的是其最新版本:r1.8.0-rc1),這里我將其也解壓在了D盤:?????
  mongodb-src-r1.8.0-rc1:
  https://github.com/mongodb/mongo/zipball/r1.8.0-rc1 ?
  之后利用vs2010打開 D:\mongodb-mongo-4d2aeb6\db目錄下的解決方案文件“db_10.sln”, 加載之后的視圖如下:???   在其中的mongod項(xiàng)目上,點(diǎn)擊鼠標(biāo)右鍵,打開"屬性"對(duì)話框, 在“配置屬性”-“c++目錄”-"包含目錄"中點(diǎn)“編輯”:???   添加對(duì)上面的boost源碼文件路徑的包含:???   設(shè)置庫文件目錄選項(xiàng)中添加對(duì)剛編譯的boost庫的路徑"D:\boost_1_42_0\lib"聲明,如下圖:????? ?

  在C/C++常規(guī)--“附加包含目錄”,中添加"D:\boost_1_42_0"聲明,如下圖:

  5.因?yàn)槲业臋C(jī)器是32位系統(tǒng),而下載的mongodb項(xiàng)目設(shè)置為64位,所以要修改一下編譯方式,如下圖:???? 上海閔行企業(yè)網(wǎng)站設(shè)計(jì)與制作 src="http://daizhj.c上海企業(yè)網(wǎng)站設(shè)計(jì)與制作nblogs.com/images/cnblogs_com/daizhj/mongodebug8.png" alt="" width="604" height="350" /> 一切就緒后,開始編譯,時(shí)間比較長,耐心等待...????
  注:如出現(xiàn)“pch.h文件無法打開”的錯(cuò)誤信息時(shí),只要在VS2010中的開該文件即可。

  6.如果要調(diào)試的話,打開“項(xiàng)目屬性”--“配置屬性”--“調(diào)試”--“命令參數(shù)”,輸入如下參數(shù)? :

"--dbpath?d:\mongodb\db"?"--port?27017"

  然后找出db.cpp文件,將斷點(diǎn)放在如下函數(shù)的第一行代碼處:

int?main(int?argc,?char*?argv[])

  如下圖:
  需要說明的是,我一開始使用的是VS2008,但mongodb源碼在最新版本中好像就不再提供vs2008的項(xiàng)目文件了,另外我使用vs2008也一直沒有成功編譯過mongodb,不是缺文件就是鏈接庫編譯時(shí)有問題(google一下,發(fā)現(xiàn)國外同行也被類似問題困擾)。所以大家也就不要再VS2008編譯上浪費(fèi)時(shí)間了。

好了,到這里主要的內(nèi)容介紹完了,大家可以通過調(diào)試來分析觀察MONGODB代碼的執(zhí)行流程了。

  參考鏈接:
  http://www.cnblogs.com/wondering/archive/2009/05/21/boost_setup.html
  http://www.cnblogs.com/xdotnet/archive/2008/03/22/boost_install_config.html
  http://www.mongodb.org/display/DOCS/Building+with+Visual+Studio+2010??????

轉(zhuǎn)載于:https://www.cnblogs.com/waw/archive/2011/10/19/2218112.html

總結(jié)

以上是生活随笔為你收集整理的VS2010 C++下编译调试MongoDB“.NET研究”源码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。