概要

由于大作业的需求,我得在我Win10机子上配置Visual Studio 2017 + Qt + Boost + MongoDB这样的开发环境,这里记一下笔记。

先吐几个槽:

  • Windows下的C++编程环境好像不是很友好(比Java低到不知道哪里去了)。
  • VS2017好难用啊QAQ,我想用JavaIDEA啊QAQ。
  • MongoDB还得自己编译...有毒吧?

姊妹文章:Linux+Qt5+Boost+MongoDB安装配置

Qt

官网下载离线包,截止目前,Qt的最新版本是5.10.1,所以我下的是这个文件qt-opensource-windows-x86-5.10.1.exe

下好后安装。由于我用的是VS2017,所以我这样安装的:

Boost

直接到官网下载二进制安装包(截止目前最新版本是1.67boost_1_67_0-msvc-14.1-64.exe),安装到相应路径(我是安装到了E:\Boost\boost_1_67_0)就好。

MongoDB

跟着官网教程走,总结来说:

一、安装 MongoDB

官网下载,目前最新版是mongodb-win32-x86_64-2008plus-ssl-3.6.4-signed.msi

安装好以后跟着官网教程走就行了。

二、编译 mongo-c-driver

先在github.com/mongodb/mongo-c-driver/releases下载最新的源码,截止目前,最新版本是1.9.4,所以我下的是这个文件mongo-c-driver-1.9.4.tar.gz

打开VS的终端(就是装好VS后有各种终端的)。

先编译libbson(以下的安装路径根据个人喜好自行更改):

cd mongo-c-driver-1.9.4\src\libbson
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=E:\mongo\mongo-c-driver -DCMAKE_BUILD_TYPE=Release
msbuild.exe /p:Configuration=Release ALL_BUILD.vcxproj
msbuild.exe /p:Configuration=Release INSTALL.vcxproj

然后编译mongo-c-driver(以下的安装路径根据个人喜好自行更改):

cd mongo-c-driver-1.9.4
cmake -G "Visual Studio 15 2017 Win64" -DENABLE_SSL=WINDOWS -DENABLE_SASL=SSPI -DCMAKE_INSTALL_PREFIX=E:\mongo\mongo-c-driver -DCMAKE_PREFIX_PATH=E:\mongo\mongo-c-driver -DCMAKE_BUILD_TYPE=Release
msbuild.exe /p:Configuration=Release ALL_BUILD.vcxproj
msbuild.exe /p:Configuration=Release INSTALL.vcxproj

三、编译 mongo-cxx-driver

(在这里跳过了英文教程的第二步就是是否使用Boost,我这里当然是使用啦)

同样先在github.com/mongodb/mongo-cxx-driver/releases下载最新的源码,截止目前,最新版本是3.2.0,所以我下的是这个文件Source code (zip)

同样打开VS的终端(注意先进入到build目录,安装路径根据个人喜好自行更改,同时在这里我安装的是静态库)。

cd build
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=E:\mongo\mongo-cxx-driver -DCMAKE_PREFIX_PATH=E:\mongo\mongo-c-driver -DCMAKE_BUILD_TYPE=Release -DBOOST_ROOT=E:\Boost\boost_1_67_0 -DBUILD_SHARED_LIBS=OFF ..
msbuild.exe /p:Configuration=Release ALL_BUILD.vcxproj
msbuild.exe /p:Configuration=Release INSTALL.vcxproj

一些使用 MongoDB 的坑

坑死了这玩意,tm谁写的驱动。

  • 在任何时候别想用std::string来构造(传参)mongocxx里的东西,必须.c_str()或者bsoncxx::types::b_utf8(str)
  • mongo终端里插入数字时一定要带上类型...不然默认是double的...必须NumberInt(1)而不是1

2 条评论

  1. 按照博主的教程,下载mongo-cxx-driver 3.2.0后编译出错:

    CMake Error at src/mongocxx/CMakeLists.txt:42 (find_package):
    By not providing “Findlibmongoc-static-1.0.cmake” in CMAKE_MODULE_PATH this
    project has asked CMake to find a package configuration file provided by
    “libmongoc-static-1.0”, but CMake did not find one.

    Could not find a package configuration file provided by
    “libmongoc-static-1.0” (requested version 1.9.2) with any of the following
    names:

    libmongoc-static-1.0Config.cmake
    libmongoc-static-1.0-config.cmake
    

    Add the installation prefix of “libmongoc-static-1.0” to CMAKE_PREFIX_PATH
    or set “libmongoc-static-1.0_DIR” to a directory containing one of the
    above files. If “libmongoc-static-1.0” provides a separate development
    package or SDK, be sure it has been installed.

    我输入的cmake命令是
    cmake -DCMAKE_INSTALL_PREFIX=C:\cxx_libs_msvc\mongo-cxx-driver -DCMAKE_PREFIX_PATH=C:\cxx_libs_msvc\mongo-c-driver -DCMAKE_BUILD_TYPE=Release -DBOOST_ROOT=C:\cxx_libs_msvc\boost_1_71_0 -DBUILD_SHARED_LIBS=OFF ..

欢迎留言>_<

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据