Сборка под Windows: toolchain и комплект файлов
MSVC/MinGW, архитектура, рендереры, шаблоны и проверка результата.
Команды выполняются из Source с SConstruct. Сначала настройте компилятор и Windows SDK, затем выбирайте target и arch явно. Базовые требования Python/SCons описаны в подготовке сборки.
Компилятор и среда
Текущий Source проверяет поддержку MSVC от Visual Studio 2019, при этом ветка VS2019 должна быть не старее 16.11. Подходящий более новый MSVC выбирается отдельно от .NET SDK. Для C# комплектов требуется текущая сборка с .NET, а не только workload C++.
Используйте терминал с настроенной средой нужной архитектуры, например x64 Native Tools Command Prompt для x86_64. Проверьте Python/SCons и наличие cl/link из выбранного toolchain. При нескольких установках фиксируйте выбранные версии и окружение.
| Вариант | Настройка |
|---|---|
| MSVC | Обычный выбор Windows при обнаруженной установке; подходящие компоненты C++ и Windows SDK |
| MinGW-w64 | use_mingw=yes и соответствующее окружение/префикс компилятора |
| LLVM в выбранном семействе | use_llvm=yes; это не автоматическое преобразование библиотек от другого compiler/CRT |
Не смешивайте объектные файлы и сторонние библиотеки разных архитектур или несовместимого CRT. Сообщение линкера о формате файла — повод проверить конкретную библиотеку и её сборку, а не менять arch случайным образом.
Базовые цели Windows x64
python -m SCons platform=windows target=editor arch=x86_64 -j4
python -m SCons platform=windows target=template_debug arch=x86_64 -j4
python -m SCons platform=windows target=template_release arch=x86_64 -j4Первая команда создаёт редактор, две следующие — шаблоны экспорта. -j4 задаёт четыре задания как пример; при нехватке памяти уменьшайте параллелизм. Добавляйте module_mono_enabled=yes для соответствующей нативной C# конфигурации и затем готовьте managed-комплект.
Полные команды выше не запускались в рамках этой проверки. Сверены параметры текущего Source; успешная сборка учебной DLL расширения не означает, что весь движок под Windows собран и проверен.
Выходные файлы
Обычный результат находится в bin. Имя включает windows, target, arch, возможные dev/double/дополнительные суффиксы и .mono при включённом модуле. Для GUI-подсистемы Source также создаёт консольную обёртку с .console перед .exe; она полезна для журнала CLI.
Берите фактические имена из вывода линкера. Не обещайте работу только одного EXE без зависимостей: C# данные, включённые SDK/драйверы и отдельные DLL могут быть необходимы. Сохраните комплект целиком и проверьте его на целевой машине.
Графические и вспомогательные зависимости
В текущем SConstruct d3d12 по умолчанию false. Старое утверждение, что Windows всегда собирается с Direct3D 12, неверно. Если включаете d3d12=yes, подготовьте соответствующие MESA/NIR и выбранные дополнительные зависимости; пути и архитектуры должны соответствовать toolchain.
ANGLE, AccessKit, Agility SDK и PIX имеют отдельные параметры/пути. Проверяйте журнал конфигурации: недостающая опциональная зависимость может отключить функцию, а успешная компиляция не доказывает её наличие. При необходимости используйте установочный скрипт конкретной зависимости из текущего дерева после проверки его назначения; эта проверка их не запускала.
Отключение одного драйвера не равно наличию другого: проверьте итоговые rendering_device, forward_plus_renderer/forward_mobile_renderer, vulkan и opengl3 относительно проекта. Не заменяйте проверку рендера списком флагов из чужой команды.
Оптимизация и проверка
production=yes задаёт платформенные значения по умолчанию; MSVC с lto=auto в текущем detect.py использует none. Символы, optimize и dev_build — отдельные параметры. Подробности — в конфигурации SCons.
После своей сборки проверьте запуск редактора, создание/открытие проекта, нужный рендерер, C# при его использовании и реальную экспортированную игру с правильным шаблоном. Зафиксируйте версии инструментов, параметры и хеши результата. Эти проверки полного Windows-комплекта здесь не выполнены.