Spec-Zone.ru › MariaDB

Настройка MariaDB в Windows

Требования к сборке

Для сборки MariaDB необходимо следующее:

  • Visual C++: В настоящее время поддерживаются Visual Studio 2019 и 2022. Как правило, мы стараемся поддерживать две последние версии VS, но сами собираем, используя последнюю. Общедоступные редакции подойдут; мы используем их только в наших сборках. При установке Visual Studio убедитесь, что вы добавили "Разработка настольных приложений с помощью C++".
  • CMake: Рекомендуется использовать последнюю версию. Более старые версии могут не поддерживать вашу версию Visual Studio. Visual Studio 2019 требует cmake 3.14 или более поздней версии.
  • Git: Необходим для сборки новых версий из исходного дерева.
    • ПРИМЕЧАНИЕ: выполните
git config --global core.autocrlf input

после установки, иначе некоторые тесты mtr могут завершиться неудачей

В диалоговом окне "Настройка переменной среды PATH" выберите "Использовать Git из командной строки Windows", иначе в переменной среды PATH будут указаны неправильный (mingw64) git и perl

  • Bison из GnuWin32: Bison создаёт части парсера SQL. При скачивании выберите "Полный пакет, за исключением исходных файлов".
    • ПРИМЕЧАНИЕ: не устанавливайте его в стандартный путь с пробелами (например, в C:\Program Files\GnuWin32); сборка сломается из-за ошибки bison. Вместо этого установите в C:\GnuWin32.
    • Добавьте C:\GnuWin32\bin в вашу системную PATH после установки.
  • Strawberry perl: Используется для запуска набора тестов. ActiveState Perl — это ещё одна дистрибуция Win32 Perl, и она также должна работать (но она не так хорошо протестирована). ПРИМЕЧАНИЕ: версии Perl из Cygwin или mingw не подойдут для тестирования. Используйте встроенный в Windows Perl.
  • Необязательно: Если вы планируете собрать пакеты MSI, установите Windows Installer XML. Если вы собираете MSI с версией 10.4, также измените установку Visual Studio, добавьте "Перераспределяемые файлы MSM" (см. MDEV-22555)
  • Gnu Diff, необходим, если вы запускаете тесты mysql-test-run.pl.

Проверьте, что bison.exe, git.exe, cmake.exe и perl.exe доступны в переменной среды PATH с помощью "where bison", "where git", "where perl" и т. д. из командной строки.

Сборка библиотек Windows

Вышеперечисленные инструкции предполагают использование MariaDB 10.2 или более поздней версии.

Разветвите репозиторий MariaDB или распакуйте архив с исходниками. В командной строке перейдите в каталог с исходниками, затем выполните:

mkdir bld
cd bld
cmake ..
cmake --build . --config RelWithDebInfo

В приведенном примере собирается релизная конфигурация для 64-битных систем в подкаталоге с именем bld. "cmake ..." — это этап конфигурации, "cmake --build . --config Relwithdebinfo" — это этап сборки.

Варианты сборки

Сборка отладки

Сборка отладочной версии выполняется с помощью:

cmake --build . --config Debug

Сборка 32-битных и 64-битных библиотек

Сборка 64-битной библиотеки

Генератор cmake Visual Studio 2019-2022 по умолчанию использует архитектуру хоста, то есть с вышеуказанными шагами cmake будет собирать x64-битные библиотеки на x64-машине.

Сборка 32-битной библиотеки

Передайте параметр -A Win32 для CMake, например так

cmake .. -A Win32

Историческая справка: С Visual Studio 2017 и более ранними версиями необходимо было указать имя 32-битного генератора, например cmake .. -G "Visual Studio 15 2017"

Полный список доступных генераторов можно получить, вызвав "cmake" без параметров.

Сборки в IDE

Вместо вызова "cmake --build", как указано выше, откройте MySQL.sln. При запуске Visual Studio выберите «Сборка/Компилировать».

Сборка ZIP-пакета

cmake --build . --config relwithdebinfo --target package

Вот как это делается в соответствии со стандартами, стандартная цель cmake.

Однако MariaDB использует нестандартную цель «win_package» для упаковки своих релизов, она генерирует 2 ZIP-файла: компактный с исполняемыми файлами и ещё один с отладочной информацией (.PDB-файлы). Отладочная информация важна для отладки выпущенных библиотек и анализа сбоев.

cmake --build . --config relwithdebinfo --target win_package

Сборка MSI-пакета

cmake --build . --config relwithdebinfo 
cmake --build . --config relwithdebinfo --target MSI

Включение HeidiSQL в установщик MSI

Начиная с MariaDB 5.2.7, можно создать установщик, включающий сторонние продукты, как описано в MWL#200. В настоящее время поддерживается только HeidiSQL; он также включён в официальные сборки. Используйте параметр CMake -DWITH_THIRD_PARTY=HeidiSQL для включения его в установщик.

Подпись кода

Сборки MariaDB опционально поддерживают подпись кода с помощью authenticode с опциональным параметром SIGNCODE. Используйте cmake -DSIGNCODE=1 во время этапа конфигурации для подписи библиотек в ZIP и MSI пакетах.

Важно: для работы SIGNCODE=1 пользователь, запускающий сборку, должен установить действительный цифровой сертификат authenticode в хранилище сертификатов, иначе этап упаковки завершится неудачей.

Сборка пакетов для выпусков MariaDB

Полная последовательность команд для создания релиза с внеисточниковой сборкой с Visual Studio и подписанными бинарными файлами может выглядеть так:

mkdir bld
cd bld
cmake .. -DSIGNCODE=1 -DWITH_THIRD_PARTY=HeidiSQL
cmake --build . --config relwithdebinfo --target win_package
cmake --build . --config relwithdebinfo  --target MSI

Эта последовательность команд создаст ZIP-пакет (например, mariadb-5.2.6-win32.zip) и MSI-пакет (например, mariadb-5.2.6-win32.msi) в каталоге bld.

Запуск тестов

  • Важно: Не используйте bash Cygwin, MinGW bash, Git bash, WSL bash или любой другой bash при запуске набора тестов. В таком случае вы, скорее всего, будете использовать неправильную версию Perl (версию «Unix-подобную» в Windows), и потратите много времени, пытаясь понять, почему эта версия Perl не подходит для набора тестов. Используйте встроенный в Windows Perl, в cmd.exe или PowerShell вместо этого,
  • Перейдите в подкаталог mysql-test каталога сборки
cd C:\server\bld\mysql-test
  • Запустите набор тестов
perl mysql-test-run.pl --suite=main --parallel=auto

Запуск теста под отладчиком

Предполагается, что VS установлена на компьютере

perl mysql-test-run.pl  <test_name> --vsjitdebugger

Если vsjitdebugger не запускается, вы можете отредактировать ключ реестра AeDebug, как указано в

https://docs.microsoft.com/en-us/visualstudio/debugger/debug-using-the-just-in-time-debugger?view=vs-2019#jit_errors

В качестве альтернативы:

perl mysql-test-run.pl  <test_name> --devenv 

(devenv.exe должен быть в PATH)

или, если вы предпочитаете WinDBG

perl mysql-test-run.pl  <test_name> --windbg
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не предварительно проверяется MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают мнение MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/Building_MariaDB_on_Windows/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API