Как настроить параметры проекта Visual Studio с помощью mongo-cxx-driver?
Я успешно собрал версию 3.0.3 драйвера MongoDB для C++ в Windows 10 с
CMAKE_INSTALL_PREFIX=C:\ Монго-CXX-водитель
Но я не знаю, как настроить проект в Visual Studio 2015, который может использовать этот драйвер.
Я нашел этот пост здесь, но я не понимаю точное решение. Я пробовал следующие свойства, но не смог:
- 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:\mongocxx-драйвер \ включает \ mongocxx \ v_noabi;% (AdditionalIncludeDirectories)
- Linker> Дополнительные каталоги библиотек: C: \ mongo-cxx-driver \ lib;% (AdditionalLibraryDirectories)
Visual Studio не помечает никаких ошибок, но когда я пытаюсь скомпилировать код, я получаю 401 ошибку.
Я надеюсь, что кто-то может помочь мне.
РЕДАКТИРОВАТЬ: Полный список всех 401 ошибок хранится здесь.
РЕДАКТИРОВАТЬ: я начал новый проект и использовал точно такие же настройки. Теперь я просто получаю 14 ошибок. Здесь хранится список ошибок (EDIT: удаленный файл).
РЕДАКТИРОВАТЬ: я добавил следующую конфигурацию:
- Configuration Manager> Платформа активных решений: x64
- C / C++> Дополнительные каталоги включения: C:\Program Files\boost\boost_1_62_0;
Теперь я получаю следующие ошибки.
3 ответа
Сначала спасибо всем за помощь! Я получил рабочее решение со следующей настройкой:
- Configuration Manager > Платформа активных решений: 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;
- Linker> Дополнительные каталоги библиотек: 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)";
Я также пытаюсь собрать драйвер с 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
Но когда я пытался связать статический lib с тестовым примером, я получаю ошибку компоновщика, например:
неразрешенный внешний символ __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>