为 Windows 平台编译
需求
要在Windows下进行编译, 需要以下内容:
- Visual Studio Community ,2017或更高版本. 建议使用VS 2019. 请务必阅读下面的 “安装Visual Studio注意事项”, 否则你将不得不再次运行/下载安装程序.
- MinGW-w64 与GCC可以作为Visual Studio的替代品. 请确保安装/配置为使用
posix线程模型. - Python 3.5+.
- SCons 3.0 构建系统. 如果使用Visual Studio 2019, 你至少需要SCons 3.1.1.
注解
Scoop,则可以使用以下命令轻松安装 MinGW 和其他依赖项:
注解 MSYS2,你可以使用以下命令轻松安装 MinGW 和其他依赖项:scoop install gcc python scons make
对于每个 MSYS2 MinGW 子系统,你应该在其 shell 中运行 pip3 install scons。 参见 构建系统介绍。pacman -S mingw-w64-x86_64-python3-pip mingw-w64-x86_64-gcc \ mingw-w64-i686-python3-pip mingw-w64-i686-gcc make
设置Python
PATH的选项. 然后SCons安装程序应该将检测并使用现有的Python安装.设置SCons
要安装 SCons,请打开命令提示符并运行以下命令:python -m pip install scons
Defaulting to user installation because normal site-packages is not writeable,那么你就需要提升权限后再重新执行该命令。使用管理员身份打开一个新的命令提示符,然后再执行该命令,确保 SCons 可以通过PATH访问。cmd.exe) 中键入python --version和scons --version.PATH环境变量中, 然后再次检查. 为此, 您可以再次运行Python安装程序并启用将Python添加到PATH的选项.安装Visual Studio注意事项
C++ . 自定义 安装而不是 典型 安装, 然后选择 C++ 作为语言. 修改 按钮. 从 添加/删除程序 中运行安装程序只会给您提供 修复 选项, 而该选项将不允许您安装C++工具.下载Godot的源代码
GitHub 上. 建议使用 Git 下载(克隆).C:\godot. 警告 为了防止编译过程中由于连续病毒扫描而导致的速度减慢, 请将Godot源文件夹添加到杀毒软件中的例外列表中. 病毒和威胁防护 下, 进入 病毒和威胁防护设置 , 并向下滚动至 排除项 . 单击 添加或删除排除 项, 然后添加Godot源文件夹.编译
选择编译器
use_mingw=yes. 注意,MSVC的构建不能从MSYS2或MinGW的shells中进行. 使用cmd.exe或PowerShell代替. 在开发过程中, 通常最好使用Visual Studio编译器, 因为它比MinGW更快地链接Godot二进制文件. 但是,MinGW可以使用链接时间优化(请参见下文)来生成更多优化的二进制文件, 从而使其成为生产使用的更好选择.运行SCons
cd)转到引擎源代码的根目录,然后键入:
您可以指定 CPU 线程数来加速构建:C:\godot> scons platform=windows
C:\godot> scons -j6 platform=windows
-j选项. 注解 使用多个CPU线程进行编译时,SCons可能会警告pywin32丢失. 您可以放心地忽略此警告.C:\godot\bin\中, 名称为godot.windows.tools.32.exe或godot.windows.tools.64.exe. 默认情况下,SCons将建立一个与你的CPU架构相匹配的可执行文件, 但这可以用bits=64或bits=32来覆盖. 该可执行文件包含整个引擎, 并且运行时没有任何依赖关系. 运行它会启动项目管理器. 注解target=release_debug来使最终的可执行文件更小更快.use_lto=yes来使二进制文件更小更快. 由于链接时优化是一个内存密集的过程, 在编译时需要大约7GB的可用内存. 注解bin/文件夹中创建一个名为._sc_或_sc_的文件来启用 自包含模式.在Visual Studio或其他IDE中进行开发
对于大多数项目, 只使用脚本就足够了, 但是当需要C++开发时, 为了创建模块或扩展引擎, 通常需要使用IDE.vsproj=yes参数运行 SCons 来创建 Visual Studio 解决方案,如下所示:
构建 按钮构建Godot. 如果需要编辑构建命令, 它们位于 “Godot” 项目设置,NMAKE表中. 在命令结束时调用SCons. 如果出错, 请从其他构建配置(debug,release_debug,release)或体系结构(Win32 / x64)中复制命令. 它们是等价的.scons p=windows vsproj=yes
从其他操作系统为Windows交叉编译
MinGW-w64 , 它通常有32位和64位两种版本. 包的名称可能根据你的发行版而不同, 这里有一些已知的包:PATH环境变量中检查以下二进制文件:i686-w64-mingw32-gccx86_64-w64-mingw32-gcc
PATH中(例如/usr/bin),则可以定义以下环境变量来提示以构建系统:
为了确保您做的事正确,在 shell 中执行以下操作将导致编译器正常工作(版本输出可能因您的系统而异):export MINGW32_PREFIX="/path/to/i686-w64-mingw32-"export MINGW64_PREFIX="/path/to/x86_64-w64-mingw32-"
${MINGW32_PREFIX}gcc --version# i686-w64-mingw32-gcc (GCC) 6.1.0 20160427 (Mageia MinGW 6.1.0-1.mga6)
故障排除
此bug . 您可以按照以下说明针对 64 位更改该配置:
对于 32 位: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>
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 tools=no target=release_debug bits=32C:\godot> scons platform=windows tools=no target=release bits=32C:\godot> scons platform=windows tools=no target=release_debug bits=64C:\godot> scons platform=windows tools=no target=release bits=64
3.1.1.stable或3.2.dev)替换<version>:
使用以下名称:%USERPROFILE%\AppData\Roaming\Godot\templates\<version>\
此外, 如果您使用的是自定义模块或自定义引擎代码, 则可能需要在此处将二进制文件配置为自定义导出模板:windows_32_debug.exewindows_32_release.exewindows_64_debug.exewindows_64_release.exe
bin\目录中生成的文件, 因此下次构建时, 将自动引用自定义模板.
