Проблемы сборки mon go - c -driver-1.16.2 для Win64 - PullRequest
2 голосов
/ 01 апреля 2020

Мне нужно скомпилировать драйвер MongoDB для windows x64 (расширение .dll). Я следовал этому учебнику с visual studio 16 2019 и cmake 3.17.0, но обнаружил несколько проблем:

  1. Первый шаг:
$ 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?

Большое спасибо за ваше время и ответы, я не знаю, как продолжить,

Гектор

1 Ответ

1 голос
/ 02 апреля 2020

В руководстве по сборке драйвера * go - c на Windows отсутствует шаг, по которому следует загружать исходный код (как указано в параграфах для других платформ). Так что может возникнуть искушение загрузить Source code (zip) со страницы релизов. Это даст вам копию хранилища только после установки тега. Но важно использовать ссылку mongo-c-driver-1.16.2.tar.gz на странице релизов. Тогда все должно работать.

...