博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongo的安装
阅读量:5072 次
发布时间:2019-06-12

本文共 2436 字,大约阅读时间需要 8 分钟。

windows:

   1 安装scons

    (1): 下载, 使用x86_32位,因为scons只有32位安装包可用, ,python-2.7.6.msi

    (2):下载2.3.0,,scons-2.3.0-setup.exe

     (3):安装python 和 scons, 将C:\Python27\Scripts写入PATH

    (4): 下载安装 ,,pywin32-218.win32-py2.7.exe

   2 安装boost库

   3 下载mongodb的C++ driver

     4 开始安装

      CD 到解压的driver目录,运行scons,会提示boost的路径不对,打开SConstruct文件,在最后加上env.Append(CPPPATH=["D:/boost/include/boost-1_54"], LIBPATH=["D:/boost/lib/x64"]),指明目录;

      再次运行scons,会提示text.h(89):#error temp error,这是因为scons没带使用 Unicode 字符集的参数,于是就默认使用多字节字符集,打开\mongo-cxx-driver-v2.2\src\mongo\util下的text.h文件,将#error temp error加双斜线注释掉;

      再次运行scons,会提示无法解析的符号,在SConstruct文件中加入env.Append(LIBS=['WS2_32','Dbghelp']);

      如果你也遇到“\mongo-cxx-driver-v2.4\src\mongo\util”中file.cpp文件中90行: _handle = CreateFileW(toNativeString(filename).c_str(), 报的错误,把CreateFileW改成CreateFile。

   5 测试

      

#include 
#include "mongo/client/dbclient.h" using namespace std; using namespace mongo; void run() { DBClientConnection c; c.connect("localhost"); //add port,c.connect("localhost:27017") } int main(void) { try { run(); cout<<"connected ok"<

 

    工程配置中加入头文件和boost的路径,编译,会有很多连接错误,在链接中加入Dbghelp.lib;WS2_32.lib。编译,还是有错误,仔细一看,发现是mongoclient.lib是在vs2012下编的,而我的测试代码是2010,所以要重新编译mongoclient.lib。

    在SConstruct文件中的

env = Environment(BUILD_DIR='#build',                  CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}',                  CLIENT_DIST_BASENAME='mongo-cxx-driver',                  CLIENT_LICENSE='#LICENSE.txt',                  CLIENT_SCONSTRUCT='#SConstruct',                  MSVS_ARCH=None,                  PYTHON=sys.executable,                  PYSYSPLATFORM=os.sys.platform)

改成

env = Environment(BUILD_DIR='#build',                  MSVS_VERSION = '10.0',                  CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}',                  CLIENT_DIST_BASENAME='mongo-cxx-driver',                  CLIENT_LICENSE='#LICENSE.txt',                  CLIENT_SCONSTRUCT='#SConstruct',                  MSVS_ARCH=None,                  PYTHON=sys.executable,                  PYSYSPLATFORM=os.sys.platform)

  加了一个编辑器选项:MSVS_VERSION。

  再次编译,发现还是有连接错误,搞了半天,把运行库改为MT,然后改为release,就好了。就是说不能用debug来测试了?

 

  再次改SConstruct文件的配置,使之能用于debug:在文件最后加上env.Append(CCFLAGS = ['-D_DEBUG']),就能编出debug版的lib文件了,参考。如果要编MDd的,就改为env.Append(CCFLAGS = ['-D_DEBUG', '/MDd'])。

 

  最终编完。

 

 

 

 

    

 

 

  

    

转载于:https://www.cnblogs.com/afan/p/3434272.html

你可能感兴趣的文章