如何使用c++;mongodb的司机? 请告诉我如何使用MunGDB的C++驱动程序来构建程序。 不要抱怨我的英语不好

如何使用c++;mongodb的司机? 请告诉我如何使用MunGDB的C++驱动程序来构建程序。 不要抱怨我的英语不好,c++,mongodb,visual-studio-2012,boost,C++,Mongodb,Visual Studio 2012,Boost,我的环境 Windows7 64位 Visual Studio Ultimate 2012(x64版本目标项目) 我执行了以下步骤 我安装了ptython2.7.2、pythonforwindows扩展和scons2.3.0 我安装了boost 1.54.0。我执行了'boostrap'和'b2-a--build type=complete--address model=64--link=static--runtime link=static' 我下载mongodb-linux-x86_6

我的环境

  • Windows7 64位
  • Visual Studio Ultimate 2012(x64版本目标项目)
我执行了以下步骤

  • 我安装了ptython2.7.2、pythonforwindows扩展和scons2.3.0
  • 我安装了boost 1.54.0。我执行了'boostrap'和'b2-a--build type=complete--address model=64--link=static--runtime link=static'
  • 我下载mongodb-linux-x86_64-v2.4-latest.tgz
  • 我在SConstruct中添加了以下文本

    env.Append(CPPPATH=['C:\\boost\\boost_1_54_0'])
    env.Append(LIBPATH=['C:\\boost\\boost_1_54_0\\stage\\lib'])
    env.Append(CPPDEFINES=["_UNICODE"])
    env.Append(CPPDEFINES=["UNICODE"])
    
  • 我演了《scons mongoclient》

  • 我做了VisualStudioC++的项目。
  • 我在项目中设置了“Release”和“x64”
  • 在属性页/Configuration Properties/C C++/General/Additional Include目录中,我设置了“C:\boost\boost\u 1\u 54\u 0”和“C:\mongo\mongo-cxx-driver-v2.4\src”
  • 在属性页/配置属性/链接器/常规/附加库目录中, 我设置了“C:\boost\boost\u 1\u 54\u 0\stage\lib”和“C:\mongo\mongo-cxx-driver-v2.4”
  • 在属性页/configurationproperties/Linker/Input/Additional Dependences中,我设置了'mongoclient.lib'、'ws2_32.lib'和'psapi.lib'
  • 在属性页/configurationproperties/Linker/Input/Ignore特定的默认库中,我设置了'msvcprt.lib'和'LIBCMT.lib'
  • 在属性页/configurationproperties/C++/preposessor/Preprocessor定义中,我设置了“\u CRT\u SECURE\u NO\u WARNINGS”
  • 在属性页/配置属性/C++/代码生成/运行时库中,我设置了“多线程(/MT)”
我用这个驱动程序做了一个程序。然而,该计划的构建解决方案失败了

1>mongoclient.lib(stringutils.obj) : error LNK2001: unresolved external symbol __security_check_cookie
1>mongoclient.lib(initializer_dependency_graph.obj) : error LNK2001: unresolved external symbol __security_check_cookie
1>mongoclient.lib(initializer.obj) : error LNK2001: unresolved external symbol __security_check_cookie
....
 fatal error LNK1120: 154 unresolved externals
如果你指出台阶上有什么奇怪的地方,我会帮你的


谢谢.< /P> < P> <强>如何构建MangGDB C++驱动程序< /强>

此解决方案在具有以下特征的机器上获得成功:

  • Windows XP SP3 32位
  • Visual Studio Express 2010(VC 10)
  • 我使用D:\MongoDBcplusplusClient作为工作目录(我在那里安装了所有必备组件)

    过程:

    • 步骤1

    下载MunGDB C++驱动程序:

    您可以使用Git创建克隆或将其下载为.zip文件(我做了第二个),您将得到一个类似mongo-cxx-driver-legacy.zip的文件。将其解压缩到工作目录中的mongo cxx driver legacy文件夹中

    • 步骤2
    下载Boost预构建的windows二进制文件注意您应该使用特定版本的Boost。在我的例子中,1.52版成功了。您可以从这里下载:

    我下载了boost_1_52_0-vc32-bin.exe自解压exe。将它放在您的工作目录中并运行它。它将创建一个包含boost二进制文件(.lib和.dll文件)的文件夹(类似于lib32)

    • 步骤3
    下载Boost源代码(.h文件)。当然,它们应该与步骤2中的版本相同。我从这里下载了它们:

    您将获得一个boost_1_52_0.zip文件,您可以在boost_1_52_0文件夹中提取该文件

    • 步骤4
    下载Python。在本例中,我从以下位置下载了版本2.7.9,特别是Windows x86 MSI安装程序:

    • 步骤5
    从此处下载烤饼:

    我下载了Windows安装程序(scons-2.3.4-setup.exe)并在Python目录下安装了scons(在我的例子中是C:\Python27)

    • 步骤6
    从此处下载msinttypes:

    (应将这些头文件包括到使用驱动程序的项目中)

    • 步骤7
    转到开始->运行…并在运行框中写入cmd。在打开的命令提示符窗口中,导航到在步骤1中提取mongo驱动程序的文件夹。就我而言,我做到了: cd D:\D:\MongoDBcplusplusClient\mongo cxx传统驱动程序\mongo cxx传统驱动程序

    • 步骤8
    使用SCON构建驱动程序。在步骤7导航的目录中写入:

    scons

    --prefix=D:\MongoDBcplusplusClient\mongo cxx驱动程序遗留\mongo cxx驱动程序遗留

    --cpppath=D:\MongoDBcplusplusClient\boost\u 1\u 52\u 0\boost\u 1\u 52\u 0

    --libpath=D:\MongoDBcplusplusClient\lib32

    --win version min=xpsp3安装

    然后按回车键

    --prefix标志指定创建驱动程序的.lib文件的目标目录,--cpppath指定Boost头文件所在的文件夹,--libpath指定Boost.lib文件的路径。当然,你应该改变你的道路。名为libmongoclient-s.lib的文件将在--前缀/lib路径中创建。 如果要生成启用调试的驱动程序,应使用以下命令:

    scons

    --prefix=D:\MongoDBcplusplusClient\mongo cxx驱动程序遗留\mongo cxx驱动程序遗留

    --cpppath=D:\MongoDBcplusplusClient\boost\u 1\u 52\u 0\boost\u 1\u 52\u 0

    --libpath=D:\MongoDBcplusplusClient\lib32

    --win version min=xpsp3

    --dbg=安装时

    名为libmongoclient sgd.lib的文件将在--prefix/lib路径中创建

    • 步骤9

    在Windows资源管理器导航到安装MunGDB C++驱动程序的文件夹中,进入子文件夹LIB(在我的例子中是D:MungDbcpluplplsCorclie\Mango CXX驱动程序遗产\蒙哥卡CXX驱动程序遗产\LIB),并重命名文件 LBMango

       #include <cstdint>
       #include <iostream>
       #include <vector>
       #include <bsoncxx/json.hpp>
       #include <mongocxx/client.hpp>
       #include <mongocxx/stdx.hpp>
       #include <mongocxx/uri.hpp>
    
         using bsoncxx::builder::stream::close_array;
         using bsoncxx::builder::stream::close_document;
         using bsoncxx::builder::stream::document;
         using bsoncxx::builder::stream::finalize;
         using bsoncxx::builder::stream::open_array;
         using bsoncxx::builder::stream::open_document;