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