我需要为Windows x64(.dll扩展名)编译MongoDB驱动程序。我在this tutorial上使用Visual Studio 16 2019和cmake 3.17.0,但发现了几个问题:
$ cd mongo-c-driver-x.y.z
$ mkdir cmake-build
$ cd cmake-build
$ cmake -G "Visual Studio 14 2015 Win64" \
"-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" \
"-DCMAKE_PREFIX_PATH=C:\mongo-c-driver" \
..
但是我在CMakeLists.txt文件顶部收到有关缺少信息的错误。 cmake_minimum_required和project()。所以我写了它们。
set_dist_list (src_libmongoc_tests_DIST
CMakeLists.txt
${src_libmongoc_tests_DIST_cs}
${src_libmongoc_tests_DIST_hs}
${src_libmongoc_tests_DIST_zeros}
${src_libmongoc_tests_DIST_pems}
${src_libmongoc_tests_DIST_dats}
${src_libmongoc_tests_DIST_txts}
${src_libmongoc_tests_DIST_jsons}
)
由于set_dist_list命令出错,我不得不删除它
cmake -G "Visual Studio 16 2019" -A "x64" -S "C:\...\mongo-c-driver-1.16.2" -B "C:\...\mongo-c-driver-1.16.2\cmake-build3" "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" "-DCMAKE_PREFIX_PATH=C:\mongo-c-driver"
$ msbuild.exe /p:Configuration=RelWithDebInfo ALL_BUILD.vcxproj
效果很好。
$ msbuild.exe INSTALL.vcxproj
没有INSTALL.vcxproj文件,所以我无法执行命令。我尝试了几次,但没有找到解决问题的方法。但是我在堆栈溢出上发现了this。我遵循了所有步骤,但是当我搜索mongo-c-driver时,只有1.15.1可用。无论如何,我还是继续,但是当过程完成后,我发现驱动程序是 x86 而不是x64(它们位于名为x86-windows的文件夹中),并且驱动程序似乎是 1.0版本(它们分别称为libmongoc-1.0.dll和libbson-1.0.dll)。
因此,结论是我浪费了很多时间无法构建驱动程序。在这两个过程中我做错了什么?如何以.dll格式获取为x64编译的mongo-c-driver的最新版本?
非常感谢您的时间和回复,我不知道该如何继续
Héctor
答案 0 :(得分:1)
在Windows上构建mongo-c-driver的教程缺少应下载源代码的步骤(因为其他平台的段落提供了此步骤)。因此,可能会想从发布页面下载Source code (zip)
。设置标签后,这只会为您提供存储库的副本。但是,必须使用发布页面上的mongo-c-driver-1.16.2.tar.gz
链接。然后一切都会正常工作。