如何使用 mongo-cxx-driver 设置 Visual Studio 项目设置?
How to set up Visual Studio project settings with mongo-cxx-driver?
我已经在 Windows 10 上使用
成功构建了 MongoDB C++ 驱动程序的版本 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。
我也在尝试使用 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
但是当我尝试 link 带有测试示例的静态库时,我得到 linker 错误,例如:
unresolved external symbol __imp_bson_append_array.
项目设置中似乎还有其他需要更改的内容。
这是一个示例 .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>
首先感谢大家的帮助!
我得到了一个具有以下设置的工作解决方案:
- 配置管理器 > 活动解决方案平台: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:\程序Files\boost\boost_1_62_0;
- 链接器 > 附加库目录:C:\mongo-cxx-driver\lib;
- 链接器 > 输入 > 附加依赖项:bsoncxx.lib;mongocxx.lib;
- 构建事件 > Post-构建事件: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)";
我已经在 Windows 10 上使用
成功构建了 MongoDB C++ 驱动程序的版本 3.0.3CMAKE_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。
我也在尝试使用 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
但是当我尝试 link 带有测试示例的静态库时,我得到 linker 错误,例如:
unresolved external symbol __imp_bson_append_array.
项目设置中似乎还有其他需要更改的内容。
这是一个示例 .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>
首先感谢大家的帮助! 我得到了一个具有以下设置的工作解决方案:
- 配置管理器 > 活动解决方案平台: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:\程序Files\boost\boost_1_62_0;
- 链接器 > 附加库目录:C:\mongo-cxx-driver\lib;
- 链接器 > 输入 > 附加依赖项:bsoncxx.lib;mongocxx.lib;
- 构建事件 > Post-构建事件: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)";