1ãå®è£
scons
(1) ä¸è½½python2.7, 使ç¨x86_32ä½ï¼å 为sconsåªæ32ä½å®è£
å
å¯ç¨ï¼
(2) ä¸è½½scons2.3.0ï¼
(3) å®è£
python å scons, å°C:\Python27\Scriptsåå
¥PATHï¼
(4) ä¸è½½å®è£
pywin32 ï¼It is recommended you install pywin32 if you want to do parallel builds (scons -j)
2ãå®è£
booståº(1.49çæ¬).
解åååå»bootstrap.batï¼çæbjam.exeåï¼cdå°ç®å½c:\boostä¸ï¼ï¼å°boost_1_49æ´å为boostäºï¼ç¼è¯boostã
ç¼è¯å½ä»¤ï¼C:\boost>bjam variant=release --with-filesystem --with-thread --with-date_time --with-program_options threading=multi toolset=msvc-10.0 link=static runtime-link=static address-model=32
è¿æ¯ä½¿ç¨VS2010ç¯å¢ç¼è¯çreleaseçæ¬ï¼ç¼è¯å®æåï¼çæC:\boost\stage\libæ件夹ï¼ä¸é¢æ6个libåºï¼
å¦æè¦ç¼è¯ædebugçæ¬ï¼ä½¿ç¨å½ä»¤ï¼bjam variant=debug --with-filesystem --with-thread --with-date_time --with-program_options threading=multi toolset=msvc-10.0 link=static runtime-link=static address-model=32
ç¼è¯å®æåï¼çæC:\boost\stage\libæ件夹ï¼ä¸é¢æ10个libåºådllï¼
æ¤å¤ä¸ºMongoDBææ¡£ä¸å¯¹äºç¼è¯booståºçè¦æ±åæï¼
When using bjam, MongoDB expects
variant=debug for debug builds, and variant=release for release builds
threading=multi
link=static runtime-link=static for release builds
address-model=64 for 64 bitï¼64ä½çè¯ï¼æ32æ¢ä¸º64ï¼ãlink=static runtime-link=staticï¼boostéè¦ç¼è¯æéæåºï¼å 为mongodbåªä¼å»é¾æ¥boostçéæåº
address-model=64å¨win7 64ç¯å¢ä¸æ¤é¡¹å¿
é¡»ï¼ä¸å å¨ç¼è¯mongodbçc++ clientæ¶ä¼åºç°é¾æ¥é误ã
3ãä¸è½½mongo2.4.6æºç
http://www.mongodb.org/downloadså®ç½ä¸è½½
ç¼è¯Mongoclient.lib
cmdå½ä»¤æ示符ä¸ï¼cdå°è§£ååçæ件ç®å½,ä¾å¦ææ¾å¨äºEçï¼E:\mongodb-src-r2.4.6ï¼è¾å
¥å½ä»¤ï¼
scons â-dd --32 mongoclient.lib // build C++ client driver library
Add --64 or --32 to get the 64- and 32-bit versions, respectively. Replace --release with --dd to build a debug build.
ç¼è¯åå¨mongodb\build\win32\32\dd\client_build\çæmongoclient.lib.
4ãæµè¯ç¨åº
å°±ç¨Mongodbèªå¸¦çä¾åå§ï¼ä½¿ç¨VS2010æå¼E:\mongodb-src-r2.4.6\src\mongo\client\examplesä¸çsimple_client_demo.vcxprojï¼ç¼è¯ï¼ä¼æ示çæsimple_client_demo.slnï¼ä¿åã
使ç¨debug模å¼ï¼é
置工ç¨ç¯å¢ï¼æå¼å·¥ç¨->å±æ§ï¼é
ç½®Configuration Propertiesä¸çVC++ Directoriesï¼å¤´æ件路å¾æ·»å C:\boostï¼Libåºè·¯å¾æ·»å boostçlibï¼ä»¥åmongodb clientçlibï¼
C:\boost\stage\lib
E:\mongodb-src-r2.4.6\build\win32\32\dd\client_build
è¿å
¥C/C++ä¸é¢çCode Generationï¼å°Runtime Library设置为Multi-threaded Debug (/MTd)
è¿å
¥Linkerä¸é¢çInputï¼è®¾ç½®Additional Dependenciesï¼æ·»å ws2_32.libï¼psapi.libï¼Dbghelp.libï¼mongoclient.lib
å°E:\mongodb-src-r2.4.6\build\win32\32\dd\mongo\baseä¸çæçerror_codes.håerror_codes.cppæ件ï¼æ·è´å°E:\mongodb-src-r2.4.6\src\mongo\baseç®å½ä¸ã
okï¼ç¼è¯ãè¿è¡.
5ãé®é¢è§£å³
error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(dbclient.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(assert_util.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(jsobj.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(status.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(mutexdebugger.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
VSççæ¬ä¸å¹é
ï¼libæ¯å¨æ´é«çº§ççæ¬ä¸ç¼è¯çæçï¼è使ç¨çæ¶åï¼æ¯å¨ä½çº§çæ¬ä¸ä½¿ç¨çï¼æ以åºç°äºä¸å¹é
çé误ãä¾å¦ï¼æå¨VS2010 SP1åVS2012çç¯å¢ä¸ç¼è¯çï¼è使ç¨æ¯å¨VS2010ä¸ä½¿ç¨ï¼æ以å¨ç¼è¯æ¶ï¼åºç°äºä»¥ä¸é®é¢ã
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_SymCleanup
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_SymGetModuleInfo64
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_SymInitialize
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_StackWalk64
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_SymFromAddr
å¨å·¥ç¨ä¾èµåºä¸æ·»å Dbghelp.lib
å
¶å®é®é¢ï¼ççä½ æ头çç¼è¯å¨ãç¼è¯åºæ¥çbooståºçæ¬ãmongoclient.libççæ¬ï¼æ¯å¦å¯¹åºå¥½äºã