C++ mongo cxx驱动程序找不到唯一ptr的polyfill
我正在尝试在Windows上构建C++ mongo cxx驱动程序找不到唯一ptr的polyfill,c++,mongodb,cmake,mongo-cxx-driver,mongo-c-driver,C++,Mongodb,Cmake,Mongo Cxx Driver,Mongo C Driver,我正在尝试在Windows上构建mongo cxx驱动程序;我正在遵循,但出现了错误: C1189 #error: "Cannot find a valid polyfill for make_unique" 以下是我所做的: 构建mongo-c-driver 我使用指定的最低版本(1.15)克隆了mongo-c-driver: 使用CMake Gui(我使用的是3.18.2),我使用Visual Studio 16生成器生成了.proj文件。我使用了默认设置: 这
mongo cxx驱动程序
;我正在遵循,但出现了错误:
C1189 #error: "Cannot find a valid polyfill for make_unique"
以下是我所做的:
构建mongo-c-driver
我使用指定的最低版本(1.15)克隆了mongo-c-driver
:
使用CMake Gui(我使用的是3.18.2),我使用Visual Studio 16生成器生成了.proj文件。我使用了默认设置:
这将成功构建,我可以在C:\ProgramFiles(x86)\mongo-C-driver
中找到相应的.dll和.lib文件
构建mongo cxx驱动程序
我使用所需版本克隆了项目(与上述版本的mongo-c-driver
兼容):
我使用Cmake Gui来配置Cmake参数,配置我安装的路径mongo-c
:
值得注意的是:
- 我没有填写
或bson-1.0\u目录
,因为我不知道他们在找什么mongoc-1.0\u目录
- 我设置了
,因为我使用的是C++17,不想使用BSONCXX\u POLY\u USE\u STD=1
或BoostSTD::experimental
make_unique
找到有效的多边形填充。我哪里出错了
谢谢大家! 答案似乎是,我错过了一步: 对于使用Visual Studio 2017(不含C++17 polyfill)的建筑,它是 需要配置一个附加选项/Zc:\uu cplusplus to 选择正确的uu cplusplus定义(问题描述 此处): 'C:\ProgramFiles(x86)\CMake\bin\CMake.exe'
-G“Visual Studio 15 2017 Win64”
-DCMAKE_CXX_标准=17
-DCMAKE_CXX_FLAGS=“/Zc:uu cplusplus”
-DCMAKE_PREFIX_PATH=C:\mongo-C-driver
-DCMAKE\u INSTALL\u PREFIX=C:\mongo cxx驱动程序\ 我根据需要添加了“/Zc:u cplusplus”标志,它编译得很好
git clone https://github.com/mongodb/mongo-c-driver --branch r1.15
git clone https://github.com/mongodb/mongo-cxx-driver --branch releases/v3.5