我们的团队在将 MongoDB CXX 驱动程序连接到 QtCreator 5.10 时遇到问题。我们使用 CMake 和 msbuild(VS 2017 编译器)构建和编译了 mongo-c-driver 和 mongo-cxx-driver。我们在 Visual Studio 中创建了测试项目,添加了所需的包含、库、依赖项(我们也将 dll 文件复制到了调试文件夹)并且它工作正常,我们已经连接到我们的 MongoDB 服务器。但是当我们试图将这些库添加到 QtCreator 项目并运行测试项目时,我们得到了这种错误:
C:\Qt-projects\test_mongo\main.cpp:24: error: undefined reference to `_imp___ZN8mongocxx7v_noabi8instanceC1Ev'
我们尝试了将这些命令添加到 .pro 文件的每种组合:LIBS +=、INCLUDE_PATH +=。我们还尝试将 dll 复制到调试/发布构建文件夹。
问题是,如何正确地将所有include 、 libs 、 dll添加到 .pro 文件中,以便 QT 项目可以识别 MongoCXX 驱动程序?
PS我们使用本教程在VS2017中创建测试项目:
Configuration Manager > Active Solution Platform: x64
C/C++ > Additional Include Directories: 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 > Additional Library Directories: C:\mongo-cxx-driver\lib;
Linker > Input > Additional Dependencies: bsoncxx.lib;mongocxx.lib;
Build Events > Post-Build Event: 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)";