Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Компиляция под Windows
См. также
На этой странице описывается, как скомпилировать редактор для Windows и экспортировать двоичные файлы шаблонов из исходного кода. Если вы хотите экспортировать свой проект в Windows, см. Экспортирование для Windows.
Требования
Для компиляции под Windows, необходимо следующее:
Компилятор C++. Используйте один из следующих вариантов:
Visual Studio Community, версия 2019 или новее. Рекомендуется Visual Studio 2022. Во время установки обязательно выберите C++ в списке рабочих нагрузок и выберите следующие отдельные компоненты:
MSVC v142 - VS 2019 C++ {arch} build tools (Latest) для целевых архитектур.
Windows 11 SDK (10.0.22621.0) (точная версия).
MSVC v143 - VS 2022 C++ {arch} build tools (Latest) для целевых архитектур.
Windows 11 SDK (10.0.22621.0) или новее.
MSVC Build Tools for {arch} (Latest) для целевых архитектур.
Windows 11 SDK (10.0.22621.0) или новее.
Если вы уже установили Visual Studio без поддержки C++ для целевой архитектуры или без Windows SDK, запустите установщик снова; он должен предложить вам кнопку Modify. Поддерживает
x86_64,x86_32иarm64.MinGW-w64 с GCC можно использовать как альтернативу Visual Studio. Обязательно установите/настройте его для использования модели потоков
posix. Важно: При использовании MinGW для компиляции веткиmasterтребуется GCC 12 или новее. Поддерживает толькоx86_64иx86_32.MinGW-LLVM с clang можно использовать как альтернативу Visual Studio и MinGW-w64. Важно: При использовании MinGW для компиляции ветки
masterтребуется clang 14 или новее. Поддерживаетx86_64,x86_32иarm64.
Python 3.9+. Обязательно включите опцию добавления Python в
PATHв установщике.Система сборки SCons 4.4+. Рекомендуется использовать последнюю версию, особенно для корректной поддержки последних выпусков Visual Studio.
Зависимости Direct3D 12 (можно пропустить с параметром SCons
d3d12=no, если поддержка Direct3D 12 не требуется).
Примечание
Если у вас установлен Scoop, вы можете легко установить MinGW и другие зависимости с помощью следующей команды:
scoop install python mingw
Scons все равно придется устанавливать через pip
Примечание
Если у вас установлен MSYS2, вы можете легко установить MinGW и другие зависимости с помощью следующей команды:
pacman -S mingw-w64-x86_64-gcc mingw-w64-i686-gcc make python-pip
For each MSYS2 MinGW subsystem, you should then run
pip3 install scons in its shell.
См. также
Чтобы получить исходный код Godot для компиляции, см. Получение исходного кода.
Для общего обзора использования SCons в Godot, смотрите Введение в систему сборки.
Настройка SCons
Чтобы установить SCons, откройте командную строку и выполните следующую команду:
python -m pip install scons
Если появляется сообщение Установка по умолчанию для пользователя, так как обычные пакеты сайта недоступны для записи, возможно, придётся выполнить эту команду ещё раз с повышенными правами. Откройте новую командную строку от имени Администратора и снова выполните команду, чтобы убедиться, что SCons доступен в переменной окружения PATH.
Чтобы проверить, правильно ли вы установили Python и SCons, вы можете ввести python --version и scons --version в командной строке (cmd.exe).
Если команды выше не работают, обязательно добавьте Python в переменную окружения PATH после установки, а затем проверьте ещё раз. Это можно сделать, повторно запустив установщик Python и включив опцию добавления Python в PATH.
Если SCons не может обнаружить вашу установку Visual Studio, возможно, ваша версия SCons слишком старая. Обновите её до последней версии с помощью команды python -m pip install --upgrade scons.
Загрузка исходного кода Godot
Подробные инструкции см. в Получение исходного кода.
С этого момента в руководстве предполагается, что вы поместили исходный код в C:\godot.
Предупреждение
Чтобы предотвратить замедление работы, вызванное постоянным сканированием на вирусы во время компиляции, добавьте исходную папку Godot в список исключений вашего антивирусного программного обеспечения.
Для Защитника Windows нажмите клавишу Windows, введите "Windows Security (Безопасность Windows)" и нажмите Enter. Нажмите Virus & threat protection (Защита от вирусов и угроз) на левой панели. В разделе Virus & threat protection settings (Параметры защиты от вирусов и угроз) нажмите Manage Settings (Управление параметрами) и прокрутите вниз до раздела Exclusions (Исключения). Нажмите Add or remove exclusions (Добавить или удалить исключения), а затем добавьте исходную папку Godot.
Компиляция
Выбор компилятора
SCons автоматически обнаружит и использует существующую установку Visual Studio. Если Visual Studio не установлена, система попытается использовать MinGW. Если у вас уже установлена Visual Studio и вы хотите использовать MinGW-w64, передайте use_mingw=yes в командную строку SCons. Обратите внимание, что сборки MSVC невозможно выполнить из оболочек MSYS2 или MinGW. Вместо этого используйте cmd.exe или PowerShell. Если вы используете MinGW-LLVM, передайте use_mingw=yes и use_llvm=yes в командную строку SCons.
Совет
Во время разработки обычно предпочтительнее использовать компилятор Visual Studio, поскольку он компонует исполняемый файл Godot гораздо быстрее, чем MinGW. Однако MinGW может создавать более оптимизированные исполняемые файлы благодаря оптимизации времени компоновки (см. ниже), что делает его более предпочтительным выбором для использования в продакшене. Это особенно актуально для виртуальной машины GDScript, которая работает с MinGW гораздо лучше, чем с MSVC. Поэтому рекомендуется использовать MinGW для создания сборок, которые вы распространяете среди игроков.
Все официальные двоичные файлы Godot собираются в пользовательских контейнерах с использованием MinGW.
Запуск SCons
После открытия командной строки перейдите в корневой каталог исходного кода движка (используя cd) и введите:
C:\godot> scons platform=windows
Примечание
При компиляции с несколькими потоками ЦП SCons может выдать предупреждение об отсутствии pywin32. Это предупреждение можно смело игнорировать.
Совет
Если вы компилируете Godot для внесения изменений или доработки движка, вам может пригодиться параметр SCons dev_build=yes или dev_mode=yes. Подробнее см. в документе Псевдонимы разработки и производства.
Если всё пройдёт успешно, полученный исполняемый файл будет помещен в папку C:\godot\bin\ с именем godot.windows.editor.x86_32.exe или godot.windows.editor.x86_64.exe. По умолчанию SCons создаст исполняемый файл, соответствующий архитектуре вашего процессора, но это можно изменить, указав arch=x86_64, arch=x86_32 или arch=arm64.
Этот исполняемый файл содержит весь движок и работает без каких-либо зависимостей. Запуск файла откроет менеджер проектов.
Совет
Если вы компилируете Godot для использования в продакшене, вы можете уменьшить размер и ускорить финальный исполняемый файл, добавив опцию SCons production=yes. Это включает дополнительную оптимизацию компиляции и оптимизации времени компоновки.
Запуск LTO занимает некоторое время и требует до 30 ГБ доступной оперативной памяти во время компиляции (в зависимости от набора инструментов). Если при использовании вышеуказанного варианта у вас заканчивается память, используйте production=yes lto=none или production=yes lto=thin (только LLVM) для облегчённой, но менее эффективной версии LTO.
Примечание
Если вы хотите использовать отдельные настройки редактора для собственных сборок Godot и официальных релизов, вы можете включить Автономный режим, создав файл с именем ._sc_ или _sc_ в папке bin/.
Установка зависимостей Direct3D 12
По умолчанию сборки Godot для Windows содержат поддержку графического API Direct3D 12. Компиляция с поддержкой Direct3D 12 требует установки дополнительных зависимостей. Если вы хотите пропустить этот шаг, вы можете использовать параметр SCons d3d12=no; поддержка Vulkan и OpenGL останется доступной.
Вы можете установить необходимые зависимости, запустив python misc/scripts/install_d3d12_sdk_windows.py в исходном репозитории Godot. После запуска этого скрипта компилируйте Godot как обычно. При этом будут использоваться пути по умолчанию для различных зависимостей, соответствующие используемым в скрипте.
Подробные шаги вы найдете ниже, если хотите настроить зависимости вручную, но приведенный выше скрипт сделает все за вас (включая дополнительные компоненты PIX и Agility SDK).
godot-nir-static library. Мы скомпилируем необходимые вам библиотеки Mesa в статическую библиотеку. Скачайте её где угодно, распакуйте и запомните путь к распакованной папке — он понадобится вам ниже.
Примечание
При желании вы можете собрать библиотеки godot-nir-static самостоятельно, выполнив следующие шаги:
Установите пакет Python mako, который необходим для генерации некоторых файлов.
Клонируйте каталог godot-nir-static и перейдите в него.
Выполните следующее:
git submodule update --init
./update_mesa.sh
scons
Если вы собираете с MinGW-w64, добавьте use_mingw=yes к команде scons, также можно указать архитектуру сборки с помощью arch={architecture}. Если вы собираете с MinGW-LLVM, добавьте как use_mingw=yes, так и use_llvm=yes к команде scons.
Если вы собираете с MinGW и бинарные файлы не находятся в PATH, добавьте mingw_prefix="/path/to/mingw" к команде scons.
Статическая библиотека Mesa должна быть собрана с использованием того же компилятора и той же CRT (если вы собираете с MinGW), которые вы используете для сборки Godot.
При желании вы можете скомпилировать со следующими компонентами для получения дополнительных функций:
PIX — это приложение для настройки производительности и отладки приложений Direct3D12. Если вы скомпилируете его поддержку, вы сможете получить гораздо более подробную информацию через PIX, которая поможет вам оптимизировать игру и устранить графические ошибки. Чтобы использовать его, загрузите пакет WinPixEventRuntime. Вы будете перенаправлены на страницу пакетов NuGet, где нажмите "Download package". После загрузки измените расширение файла на .zip и распакуйте его в любой каталог.
Agility SDK можно использовать для доступа к новейшим функциям Direct3D 12 без необходимости обновления драйверов. Для этого загрузите последний пакет Agility SDK. Вы будете перенаправлены на страницу пакетов NuGet, где нажмите "Download package". После загрузки измените расширение файла на .zip и распакуйте его в любую папку.
Примечание
Если вы используете preview версию Agility SDK, не забудьте включить режим разработчика в Windows; в противном случае она не будет использоваться.
Примечание
Если вы хотите использовать PIX со сборкой MinGW, перейдите в каталог выполнения PIX и используйте следующие команды для создания библиотеки импорта:
# For x86-64:
gendef ./bin/x64/WinPixEventRuntime.dll
dlltool --machine i386:x86-64 --no-leading-underscore -d WinPixEventRuntime.def -D WinPixEventRuntime.dll -l ./bin/x64/libWinPixEventRuntime.a
# For ARM64:
gendef ./bin/ARM64/WinPixEventRuntime.dll
dlltool --machine arm64 --no-leading-underscore -d WinPixEventRuntime.def -D WinPixEventRuntime.dll -l ./bin/ARM64/libWinPixEventRuntime.a
При сборке Godot вам нужно будет указать SCons, где искать дополнительные библиотеки:
C:\godot> scons platform=windows mesa_libs=<...>
Или, если включены все опции:
C:\godot> scons platform=windows mesa_libs=<...> agility_sdk_path=<...> pix_path=<...>
Примечание
Поддержка PIX отключена по умолчанию, даже если она установлена. Чтобы включить её, передайте use_pix=yes в SCons.
Примечание
Для DLL-библиотек Agility SDK необходимо явно выбрать тип рабочего процесса. По умолчанию используется одноархитектурный режим (DLL-библиотеки копируются в bin/). Если передать agility_sdk_multi_arch=yes в SCons, будет выбран многоархитектурный режим. DLL-библиотеки будут скопированы в соответствующие подкаталоги bin/<arch>/, и во время выполнения будет загружена нужная.
Компиляция с поддержкой AccessKit
AccessKit обеспечивает поддержку скринридеров.
Компиляция с AccessKit требует установки дополнительных зависимостей. Если вы хотите пропустить этот шаг, вы можете использовать параметр SCons accesskit=no.
Вы можете установить необходимые зависимости, запустив python misc/scripts/install_accesskit.py в исходном репозитории Godot. После запуска этого скрипта компилируйте Godot как обычно.
Примечание
При желании вы можете самостоятельно собрать библиотеки AccessKit, выполнив следующие шаги:
Клонируйте каталог godot-accesskit-c-static и перейдите в него.
Выполните следующую команду:
cd accesskit-c
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build
Статическая библиотека AccessKit должна быть собрана с использованием того же компилятора и той же CRT (если вы собираете с MinGW), которые вы используете для сборки Godot.
Чтобы скомпилировать Godot с пользовательской сборкой AccessKit, добавьте accesskit_sdk_path={path}, чтобы указать SCons, где искать библиотеки AccessKit:
scons platform=windows accesskit_sdk_path=<...>
Компиляция с поддержкой WinRT
WinRT обеспечивает поддержку OneCore TTS (доступ к голосам Windows 10+), мониторинг цветовой информации HDR и выбор эмодзи.
Если вы собираете с MinGW, компиляция с WinRT требует установки дополнительных зависимостей. Если вы хотите пропустить этот шаг, вы можете использовать параметр SCons winrt=no.
Вы можете установить необходимые зависимости, запустив python misc/scripts/install_winrt.py в исходном репозитории Godot. После запуска этого скрипта компилируйте Godot как обычно.
Примечание
При желании вы можете самостоятельно собрать заголовки WinRT, выполнив следующие шаги:
Клонируйте каталог winrt-mingw и перейдите в него.
Выполните следующую команду:
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCPPWINRT_BUILD_VERSION=2.0.250303.1 -DBUILD_TESTING=OFF cppwinrt/
echo "" > build/app.manifest.rc
cmake --build build
./build/cppwinrt.exe -input windows-rs/crates/libs/bindgen/default/ -output include/
Чтобы скомпилировать Godot с пользовательской сборкой WinRT, добавьте winrt_path={path}, чтобы указать SCons, где искать заголовки AccessKit:
scons platform=windows winrt_path=<...>
Компиляция с поддержкой ANGLE
ANGLE обеспечивает уровень трансляции из OpenGL ES 3.x в Direct3D 11 и может использоваться для улучшения поддержки рендерера совместимости на некоторых старых графических процессорах с устаревшими драйверами OpenGL, а также в Windows для ARM.
Компиляция с ANGLE требует установки дополнительных зависимостей. Если вы хотите пропустить этот шаг, вы можете использовать параметр SCons angle=no.
Вы можете установить необходимые зависимости, запустив python misc/scripts/install_angle.py в исходном репозитории Godot. После запуска этого скрипта компилируйте Godot как обычно.
Примечание
При желании вы можете самостоятельно собрать библиотеки godot-angle-static, выполнив следующие шаги:
Клонируйте каталог godot-angle-static и перейдите в него.
Выполните следующую команду:
git submodule update --init
./update_angle.sh
scons
Если вы собираете с MinGW, добавьте use_mingw=yes к команде, также можно указать архитектуру сборки с помощью arch={architecture}. Если вы собираете с MinGW-LLVM, добавьте как use_mingw=yes, так и use_llvm=yes к команде scons.
Если вы собираете с MinGW и бинарные файлы не находятся в PATH, добавьте mingw_prefix="/path/to/mingw" к команде scons.
Статическая библиотека ANGLE должна быть собрана с использованием того же компилятора и той же CRT (если вы собираете с MinGW), которые вы используете для сборки Godot.
Чтобы скомпилировать Godot с пользовательской сборкой ANGLE, добавьте angle_libs={path}, чтобы указать SCons, где искать библиотеки ANGLE:
scons platform=windows angle_libs=<...>
Разработка в Visual Studio
Для компиляции Godot использование IDE не обязательно, так как SCons берёт на себя всю работу. Но если вы планируете заниматься разработкой движка или отладкой его C++-кода, вам может быть интересно настроить редактор кода или IDE.
Редакторы на основе папок не требуют специальной настройки для работы с кодовой базой Godot. Для редактирования проектов в Visual Studio их необходимо настроить как решение.
Вы можете создать решение Visual Studio через SCons, запустив SCons с параметром vsproj=yes, например так:
scons platform=windows vsproj=yes
Теперь вы сможете открыть исходный код Godot в решении Visual Studio и собрать Godot с помощью кнопки Build в Visual Studio.
См. также
Более подробную информацию см. в Visual Studio.
Устранение неполадок
Если при использовании MSVC компиляция завершилась ошибкой, обязательно установите последние обновления. Для этого запустите среду разработки Visual Studio IDE и выберите (Продолжить без кода), а затем (Справка > Проверить наличие обновлений) в строке меню вверху. Установите все обновления и повторите попытку компиляции.
Кросс-компиляция для Windows из других операционных систем
Если вы пользователь Linux или macOS, вам необходимо установить MinGW-w64, который обычно доступен в 32- и 64-битных версиях, или MinGW-LLVM, который поставляется в виде единого архива для всех целевых архитектур. Названия пакетов могут отличаться в зависимости от вашего дистрибутива, вот некоторые известные:
Arch Linux |
pacman -S mingw-w64
|
Debian / Ubuntu |
apt install mingw-w64
|
Fedora |
dnf install mingw64-gcc-c++ mingw64-winpthreads-static \
mingw32-gcc-c++ mingw32-winpthreads-static
|
macOS |
brew install mingw-w64
|
Mageiа |
urpmi mingw64-gcc-c++ mingw64-winpthreads-static \
mingw32-gcc-c++ mingw32-winpthreads-static
|
Перед попыткой компиляции SCons проверит наличие следующих двоичных файлов в переменной среды PATH:
# for MinGW-w64
i686-w64-mingw32-gcc
x86_64-w64-mingw32-gcc
# for MinGW-LLVM
aarch64-w64-mingw32-clang
i686-w64-mingw32-clang
x86_64-w64-mingw32-clang
Если двоичные файлы не находятся в PATH (например, /usr/bin), вы можете определить следующую переменную среды, чтобы дать подсказку системе сборки:
export MINGW_PREFIX="/path/to/mingw"
Где /path/to/mingw — это путь, содержащий каталог bin, в котором расположены i686-w64-mingw32-gcc и x86_64-w64-mingw32-gcc (например, /opt/mingw-w64, если двоичные файлы находятся в /opt/mingw-w64/bin).
Чтобы убедиться, что вы все делаете правильно, выполните в оболочке следующую команду, которая должна привести к запуску работающего компилятора (вывод версии может отличаться в зависимости от вашей системы):
${MINGW_PREFIX}/bin/x86_64-w64-mingw32-gcc --version
# x86_64-w64-mingw32-gcc (GCC) 13.2.0
Примечание
Если вы собираете с помощью MinGW-LLVM, добавьте use_llvm=yes к команде scons.
Примечание
При кросс-компиляции для Windows с помощью MinGW-w64 имейте в виду, что поддерживаются только архитектуры x86_64 и x86_32. MinGW-LLVM также поддерживает arm64. Обязательно укажите правильный параметр arch= при вызове SCons, если сборка выполняется на основе другой архитектуры.
Устранение неполадок
Кросс-компиляция из некоторых версий Ubuntu может привести к этой ошибке из-за конфигурации по умолчанию, которая не поддерживает потоки POSIX.
Вы можете изменить эту конфигурацию, следуя этим инструкциям для 64-битной версии:
sudo update-alternatives --config x86_64-w64-mingw32-gcc
<choose x86_64-w64-mingw32-gcc-posix from the list>
sudo update-alternatives --config x86_64-w64-mingw32-g++
<choose x86_64-w64-mingw32-g++-posix from the list>
А для 32-бит:
sudo update-alternatives --config i686-w64-mingw32-gcc
<choose i686-w64-mingw32-gcc-posix from the list>
sudo update-alternatives --config i686-w64-mingw32-g++
<choose i686-w64-mingw32-g++-posix from the list>
Создание шаблонов экспорта Windows
Шаблоны экспорта Windows создаются путем компиляции Godot без редактора со следующими флагами:
C:\godot> scons platform=windows target=template_debug arch=x86_32
C:\godot> scons platform=windows target=template_release arch=x86_32
C:\godot> scons platform=windows target=template_debug arch=x86_64
C:\godot> scons platform=windows target=template_release arch=x86_64
C:\godot> scons platform=windows target=template_debug arch=arm64
C:\godot> scons platform=windows target=template_release arch=arm64
Если вы планируете заменить стандартные шаблоны экспорта, скопируйте их в следующее место, заменив <version> идентификатором версии (например, 4.2.1.stable или 4.3.dev):
%APPDATA%\Godot\export_templates\<version>\
Со следующими именами:
windows_debug_x86_32_console.exe
windows_debug_x86_32.exe
windows_debug_x86_64_console.exe
windows_debug_x86_64.exe
windows_debug_arm64_console.exe
windows_debug_arm64.exe
windows_release_x86_32_console.exe
windows_release_x86_32.exe
windows_release_x86_64_console.exe
windows_release_x86_64.exe
windows_release_arm64_console.exe
windows_release_arm64.exe
Однако, если вы используете пользовательские модули или код движка, вы можете настроить исполняемые файлы как пользовательские шаблоны экспорта в меню экспорта проекта. Для этого необходимо включить Advanced Options (Дополнительные параметры).
В этом случае вам не нужно копировать их, просто добавьте ссылки на полученные файлы в каталоге bin\ исходной папки Godot, и в следующий раз при сборке вы автоматически укажете ссылки на пользовательские шаблоны.