Мне нужно скомпилировать драйвер MongoDB для windows x64 (расширение .dll). Я следовал этому учебнику с 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, поэтому я не смог выполнить команду. Я пытался несколько раз, но не нашел решения проблемы. Но я нашел это в стеке потока. Я выполнил все шаги, но когда я искал драйвер mon go - c, была доступна только версия 1.15.1. Я продолжил в любом случае, но когда процесс завершился, я обнаружил, что драйверы, где x86 , а не x64 (они находятся в папке с именем x86- windows), и драйверы, похоже, 1.0 версии (они называются libmon goc -1.0.dll и libbson-1.0.dll).
Итак, вывод таков, что я потратил много времени и не смог собрать драйверы , Что я сделал не так на обоих процессах? Как мне получить последнюю версию драйвера mon go - c, скомпилированного для x64 в формате .dll?
Большое спасибо за ваше время и ответы, я не знаю, как продолжить,
Гектор