zoukankan      html  css  js  c++  java
  • mongo的安装

    windows:

       1 安装scons

        (1): 下载python2.7, 使用x86_32位,因为scons只有32位安装包可用, http://www.python.org/download/releases/2.7/,python-2.7.6.msi

        (2):下载scons2.3.0,http://www.scons.org/download.php,scons-2.3.0-setup.exe

         (3):安装python 和 scons, 将C:Python27Scripts写入PATH

        (4): 下载安装pywin32 http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/,pywin32-218.win32-py2.7.exe

       2 安装boost库

       3 下载mongodb的C++ driver http://dl.mongodb.org/dl/cxx-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.2srcmongoutil下的text.h文件,将#error temp error加双斜线注释掉;

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

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

       5 测试

          

    #include <iostream> 
    #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"<<endl; 
        }catch(DBException& e){ 
            cout<<"caught"<<e.what()<<endl; 
        } 
        return 0; 
    
    } 

        工程配置中加入头文件和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文件了,参考http://www.scons.org/wiki/SconstructMultiple#CA-ea12e28a4186b7e833669c4888e7c7337fa73293_1。如果要编MDd的,就改为env.Append(CCFLAGS = ['-D_DEBUG', '/MDd'])。

      最终编完。

        

      

        

  • 相关阅读:
    linux下的exec命令
    jenkins+gitlab+maven+docker部署项目之jenkins用户权限管理
    油候插件grant的使用
    python deepcopy的替代方案
    starletter代码示例
    mac使用pytorch
    Mac ERROR:root:code for hash md5 was not found.
    scrapy-redis分布式爬虫实战
    mac进行redis5.0单机集群笔记
    合并两个有序的链表Python和Go代码
  • 原文地址:https://www.cnblogs.com/afan/p/3434272.html
Copyright © 2011-2022 走看看