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, version 2019 or later. Visual Studio 2022 is recommended. During installation make sure to select C++ in the list of workflows, and select the following individual components:
MSVC v142 - VS 2019 C++ {arch} build tools (Latest) for the target architectures.
Windows 11 SDK (10.0.22621.0) (exact version).
MSVC v143 - VS 2022 C++ {arch} build tools (Latest) for the target architectures.
Windows 11 SDK (10.0.22621.0) or newer.
MSVC Build Tools for {arch} (Latest) for the target architectures.
Windows 11 SDK (10.0.22621.0) or newer.
If you've already installed Visual Studio without C++ support for the target architecture, or without the Windows SDK, run the installer again; it should present you a Modify button. Supports
x86_64,x86_32, andarm64.MinGW-w64 with GCC can be used as an alternative to Visual Studio. Be sure to install/configure it to use the
posixthread model. Important: When using MinGW to compile themasterbranch, you need GCC 12 or later. Supportsx86_64andx86_32only.MinGW-LLVM with clang can be used as an alternative to Visual Studio and MinGW-w64. Important: When using MinGW to compile the
masterbranch, you need clang 14 or later. Supportsx86_64,x86_32, andarm64.
Python 3.9+. Make sure to enable the option to add Python to the
PATHin the installer.SCons 4.4+ build system. Using the latest release is recommended, especially for proper support of recent Visual Studio releases.
Direct3D 12 dependencies (can be skipped with the
d3d12=noSCons option if Direct3D 12 support is not desired).
Примечание
Если у вас установлен Scoop, вы можете легко установить MinGW и другие зависимости с помощью следующей команды:
scoop install python mingw
Scons все равно придется устанавливать через pip
Примечание
Если у вас установлен MSYS2, вы можете легко установить MinGW и другие зависимости с помощью следующей команды:
pacman -S mingw-w64-x86_64-gcc mingw-w64-i686-gcc make python-pip
Для каждой подсистемы MSYS2 MinGW вам следует запустить pip3 install scons в ее оболочке.
См. также
Чтобы получить исходный код 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/.
Installing Direct3D 12 requirements
By default, Windows builds of Godot contain support for the Direct3D 12 graphics
API. Compiling with Direct3D 12 support requires additional dependencies
to be installed. If you wish to skip this step, you can use the d3d12=no
SCons option; Vulkan and OpenGL support will remain available if you do so.
You can install the required dependencies by running
python misc/scripts/install_d3d12_sdk_windows.py
in the Godot source repository. After running this script, compile Godot as usual.
This will use the default paths for the various dependencies, which match the
ones used in the script.
Подробные шаги вы найдете ниже, если хотите настроить зависимости вручную, но приведенный выше скрипт сделает все за вас (включая дополнительные компоненты PIX и Agility SDK).
godot-nir-static library. Мы скомпилируем необходимые вам библиотеки Mesa в статическую библиотеку. Скачайте её где угодно, распакуйте и запомните путь к распакованной папке — он понадобится вам ниже.
Примечание
При желании вы можете собрать библиотеки godot-nir-static самостоятельно, выполнив следующие шаги:
Установите пакет Python mako, который необходим для генерации некоторых файлов.
Клонируйте каталог godot-nir-static и перейдите в него.
Выполните следующее:
git submodule update --init
./update_mesa.sh
scons
If you are building with MinGW-w64, add use_mingw=yes to the scons
command, you can also specify the build architecture using arch={architecture}.
If you are building with MinGW-LLVM, add both use_mingw=yes and
use_llvm=yes to the scons command.
If you are building with MinGW and the binaries are not located in
the PATH, add mingw_prefix="/path/to/mingw" to the scons
command.
The Mesa static library should be built using the same compiler and the same CRT (if you are building with MinGW) you are using for building 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
When building Godot, you will need to tell SCons where to look for the additional libraries:
C:\godot> scons platform=windows mesa_libs=<...>
Или, если включены все опции:
C:\godot> scons platform=windows mesa_libs=<...> agility_sdk_path=<...> pix_path=<...>
Примечание
PIX support is disabled by default, even if you have it installed.
To enable it, pass use_pix=yes to SCons.
Примечание
For the Agility SDK's DLLs, you have to explicitly choose the kind of
workflow. Single-arch is the default (DLLs copied to bin/). If you pass
agility_sdk_multi_arch=yes to SCons, you'll opt-in for multi-arch.
DLLs will be copied to the appropriate bin/<arch>/ subdirectories
and at runtime, the right one will be loaded.
Compiling with AccessKit support
AccessKit provides support for screen readers.
Compiling with AccessKit requires additional dependencies to be installed.
If you wish to skip this step, you can use the accesskit=no SCons option.
You can install the required dependencies by running
python misc/scripts/install_accesskit.py
in the Godot source repository. After running this script, compile Godot as usual.
Примечание
You can optionally build the AccessKit libraries yourself with the following steps:
Clone the godot-accesskit-c-static directory and navigate to it.
Выполните следующую команду:
cd accesskit-c
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build
The AccessKit static library should be built using the same compiler and the same CRT (if you are building with MinGW) you are using for building Godot.
To compile Godot with a custom build of AccessKit, add accesskit_sdk_path={path} to
tell SCons where to look for the AccessKit libraries:
scons platform=windows accesskit_sdk_path=<...>
Compiling with WinRT support
WinRT provides support for OneCore TTS (accessing Windows 10+ voices), HDR color information monitoring, and emoji picker.
If you are building with MinGW, compiling with WinRT requires additional dependencies to be installed.
If you wish to skip this step, you can use the winrt=no SCons option.
You can install the required dependencies by running
python misc/scripts/install_winrt.py
in the Godot source repository. After running this script, compile Godot as usual.
Примечание
You can optionally build the WinRT headers yourself with the following steps:
Clone the winrt-mingw directory and navigate to it.
Выполните следующую команду:
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/
To compile Godot with a custom build of WinRT, add winrt_path={path} to
tell SCons where to look for the AccessKit headers:
scons platform=windows winrt_path=<...>
Компиляция с поддержкой ANGLE
ANGLE обеспечивает уровень трансляции из OpenGL ES 3.x в Direct3D 11 и может использоваться для улучшения поддержки рендерера совместимости на некоторых старых графических процессорах с устаревшими драйверами OpenGL, а также в Windows для ARM.
Compiling with ANGLE requires additional dependencies to be installed.
If you wish to skip this step, you can use the angle=no SCons option.
You can install the required dependencies by running
python misc/scripts/install_angle.py
in the Godot source repository. After running this script, compile Godot as usual.
Примечание
При желании вы можете самостоятельно собрать библиотеки godot-angle-static, выполнив следующие шаги:
Клонируйте каталог godot-angle-static и перейдите в него.
Выполните следующую команду:
git submodule update --init
./update_angle.sh
scons
If you are buildng with MinGW, add use_mingw=yes to the command,
you can also specify the build architecture using arch={architecture}.
If you are building with MinGW-LLVM, add both use_mingw=yes and
use_llvm=yes to the scons command.
If you are building with MinGW and the binaries are not located in
the PATH, add mingw_prefix="/path/to/mingw" to the scons
command.
The ANGLE static library should be built using the same compiler and the same CRT (if you are building with MinGW) you are using for building Godot.
To compile Godot with a custom build of ANGLE, add angle_libs={path} to
tell SCons where to look for the ANGLE libraries:
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, и в следующий раз при сборке вы автоматически укажете ссылки на пользовательские шаблоны.