概要
由于大作业的需求,我得在我Win10
机子上配置Visual Studio 2017 + Qt + Boost + MongoDB
这样的开发环境,这里记一下笔记。
先吐几个槽:
Windows
下的C++
编程环境好像不是很友好(比Java
低到不知道哪里去了)。VS2017
好难用啊QAQ,我想用Java
的IDEA
啊QAQ。MongoDB
还得自己编译...有毒吧?
姊妹文章:Linux+Qt5+Boost+MongoDB安装配置
Qt
到官网下载离线包,截止目前,Qt
的最新版本是5.10.1
,所以我下的是这个文件qt-opensource-windows-x86-5.10.1.exe。
下好后安装。由于我用的是VS2017
,所以我这样安装的:
Boost
直接到官网下载二进制安装包(截止目前最新版本是1.67
,boost_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
版权属于: Alan Clarke's Blog
原文地址: https://blog.xalanq.com/win10-vs2017-qt-boost-mongodb-setup/
转载时必须以链接形式注明原始出处及本声明。
按照博主的教程,下载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:
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 ..