Компиляция под Windows
См. также
На этой странице описывается, как скомпилировать редактор для Windows и экспортировать двоичные файлы шаблонов из исходного кода. Если вы хотите экспортировать свой проект в Windows, см. Экспортирование для Windows.
Требования
Для компиляции под Windows, необходимо следующее:
Компилятор C++. Используйте один из следующих вариантов:
Visual Studio Community, версии 2019 или более поздней. Рекомендуется Visual Studio 2022. Убедитесь, что C++ включен в список рабочих процессов для установки. Если вы уже установили Visual Studio без поддержки C++, запустите установщик ещё раз; он должен предоставить вам кнопку Modify. Поддерживает
x86_64,x86_32иarm64.MinGW-w64 с GCC можно использовать как альтернативу Visual Studio. Обязательно установите/настройте его для использования модели потоков
posix. Важно: При использовании MinGW для компиляции веткиmasterтребуется GCC 9 или более поздней версии. Поддерживает толькоx86_64иx86_32.MinGW-LLVM с clang может использоваться как альтернатива Visual Studio и MinGW-w64. Поддерживает
x86_64,x86_32иarm64.
Python 3.8+. Обязательно включите опцию добавления Python в
PATHв установщике.Система сборки SCons 4.0+. Рекомендуется использовать последнюю версию, особенно для корректной поддержки последних версий Visual Studio.
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.
By default, Godot is built with AccessKit dynamically linked. You can use it by placing
accesskit.dll alongside the executable.
Примечание
You can use dynamically linked AccessKit with export templates as well, rename
the DLL to accesskit.{architecture}.dll
and place them alongside the export template executables, and the libraries will
be automatically copied during the export process.
To compile Godot with statically linked AccessKit:
Download the pre-built static libraries from godot-accesskit-c-static library, and unzip them.
When building Godot, add
accesskit_sdk_path={path}to tell SCons where to look for the AccessKit libraries:scons platform=windows accesskit_sdk_path=<...>
Примечание
При желании вы можете самостоятельно собрать библиотеки godot-angle-static, выполнив следующие шаги:
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.
Компиляция с поддержкой ANGLE
ANGLE обеспечивает уровень трансляции из OpenGL ES 3.x в Direct3D 11 и может использоваться для улучшения поддержки рендерера совместимости на некоторых старых графических процессорах с устаревшими драйверами OpenGL, а также в Windows для ARM.
По умолчанию Godot собран с динамически подключенным ANGLE, вы можете использовать его, поместив libEGL.dll и libGLESv2.dll рядом с исполняемым файлом.
Примечание
You can use dynamically linked ANGLE with export templates as well, rename
the DLLs to libEGL.{architecture}.dll and libGLESv2.{architecture}.dll
and place them alongside the export template executables, and the libraries will
be automatically copied during the export process.
Чтобы скомпилировать Godot со статически скомпонованным ANGLE:
Download the pre-built static libraries from godot-angle-static library, and unzip them.
При сборке Godot добавьте
angle_libs={path}, чтобы указать SCons, где искать библиотеки ANGLE:scons platform=windows angle_libs=<...>
Примечание
При желании вы можете самостоятельно собрать библиотеки 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.
Разработка в 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, и в следующий раз при сборке вы автоматически укажете ссылки на пользовательские шаблоны.