【问题标题】:How to set up Visual Studio project settings with mongo-cxx-driver?如何使用 mongo-cxx-driver 设置 Visual Studio 项目设置?
【发布时间】:2016-11-27 12:17:25
【问题描述】:

我已经成功地在 Windows 10 上为 C++ 构建了 MongoDB 驱动程序的 3.0.3 版

CMAKE_INSTALL_PREFIX=C:\mongo-cxx-driver

但我不知道如何在 Visual Studio 2015 中设置可以使用此驱动程序的项目。
我在这里找到了this post,但我不明白确切的解决方案。我尝试了以下属性但失败了:

  • C/C++ > 附加包含目录:C:\mongo-c-driver\include\libbson-1.0;C:\mongo-c-driver\include\libmongoc-1.0;C:\mongo-cxx-driver\ include\bsoncxx\v_noabi;C:\mongo-cxx-driver\include\mongocxx\v_noabi;%(AdditionalIncludeDirectories)
  • 链接器 > 附加库目录:C:\mongo-cxx-driver\lib;%(AdditionalLibraryDirectories)

Visual Studio 没有标记任何错误,但是当我尝试编译代码时,出现 401 错误。
我希望有人可以帮助我。

编辑:所有 401 错误的完整列表存储在 here

编辑:我开始了一个新项目并使用了完全相同的设置。现在我只得到 14 个错误。错误列表存储在这里(编辑:删除文件)。

编辑:我添加了以下配置:

  • 配置管理器 > 主动解决方案平台:x64
  • C/C++ > 其他包含目录:C:\Program Files\boost\boost_1_62_0;

现在我得到以下errors

【问题讨论】:

  • 您没有提到列出要链接的特定库,仅设置目录。另外,你能分享一下你得到的确切错误吗?
  • 看起来你还没有设置 Boost 的路径:Error C1083 Cannot open include file: 'boost/utility/string_ref.hpp': No such file or directory
  • 这个SO question 也可能有助于查看。

标签: c++ mongodb visual-studio-2015 mongo-cxx-driver


【解决方案1】:

我也在尝试使用 VS2015 (Windows7) 构建驱动程序。 我对项目进行了以下更改:

# C/C++ | General | Additional Include Directories:C:\work\mongo-cxx\mongo-cxx-driver-r3.0.3\src\bsoncxx\include\libbson-1.0;C:\work\mongo-cxx\mongo-cxx-driver-r3.0.3\src\mongocxx\include\libmongoc-1.0;C:\work\mongo-cxx\mongo-cxx-driver-r3.0.3\src;C:\work\mongo-cxx\libbson-1.5.0\src\bson;C:\work\mongo-cxx\mongo-c-driver-1.5.0\src\mongoc;

# C/C++ | Preprocessor | Preprocessor Definitions:MONGOCXX_STATIC;BSONCXX_STATIC;**

# Librarian | General | Additional Dependencies:libbsoncxx.lib;mongoc-static-1.0.lib;

# Librarian | General | Additional Dependencies:C:\work\mongo-cxx\mongo-cxx-driver-r3.0.3\src\bsoncxx\$(Configuration);C:\work\mongo-cxx\mongo-c-driver-1.5.0\$(Configuration);

# Librarian | General | Link Library Dependencies: Yes

但是当我尝试将静态库与测试示例链接时,我得到了链接器错误,例如:

未解析的外部符号 __imp_bson_append_array。

项目设置中似乎还有其他需要更改的内容。

【讨论】:

    【解决方案2】:

    这是一个示例 .vcxproj,假设组件位于不同的目录中。您可以将其与您所拥有的进行比较:

     <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
        <LinkIncremental>true</LinkIncremental>
        <IncludePath>c:\local\boost_1_59_0\;C:\mongo-cxx-driver\include\mongocxx\v_noabi;C:\mongo-cxx-driver\include\bsoncxx\v_noabi;C:\mongo-c-driver\include\libmongoc-1.0;C:\mongo-c-driver\include\libbson-1.0;$(IncludePath)</IncludePath>
        <LibraryPath>c:\libbson\lib;c:\mongo-c-driver\lib\;c:\mongo-cxx-driver\lib\;c:\libbson\lib;$(LibraryPath)</LibraryPath>
      </PropertyGroup>
      <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
        <ClCompile>
          <PrecompiledHeader>Use</PrecompiledHeader>
          <WarningLevel>Level3</WarningLevel>
          <Optimization>Disabled</Optimization>
          <PreprocessorDefinitions>MONGOCXX_STATIC;BSONCXX_STATIC;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
          <SDLCheck>true</SDLCheck>
        </ClCompile>
        <Link>
          <SubSystem>Console</SubSystem>
          <GenerateDebugInformation>true</GenerateDebugInformation>
          <AdditionalDependencies>libmongocxx.lib;libbsoncxx.lib;mongoc-static-1.0.lib;bson-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
        </Link>
      </ItemDefinitionGroup>
    

    【讨论】:

      【解决方案3】:

      首先感谢大家的帮助! 我得到了一个具有以下设置的工作解决方案:

      • 配置管理器 > 主动解决方案平台:x64
      • C/C++ > 附加包含目录:C:\mongo-c-driver\include\libbson-1.0;C:\mongo-c-driver\include\libmongoc-1.0;C:\mongo-cxx-driver\ include\bsoncxx\v_noabi;C:\mongo-cxx-driver\include\mongocxx\v_noabi;C:\Program Files\boost\boost_1_62_0;
      • 链接器 > 其他库目录:C:\mongo-cxx-driver\lib;
      • 链接器 > 输入 > 附加依赖项:bsoncxx.lib;mongocxx.lib;
      • 构建事件 > 构建后事件:COPY "C:\mongo-cxx-driver\bin\bsoncxx.dll" "$(OutDir)";COPY "C:\mongo-cxx-driver\bin\mongocxx. dll" "$(OutDir)";COPY "C:\mongo-c-driver\bin\libmongoc-1.0.dll" "$(OutDir)";COPY "C:\mongo-c-driver\bin\libbson- 1.0.dll" "$(OutDir)";

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多