为Windows编译¶
要求¶
在Windows下编译需要以下内容:
Visual Studio Community <https://www.visualstudio.com/vs/community/> _ 2015版(14.0)或更高版本。 Make sure to read "Installing Visual Studio caveats" below or you will have to run/download the installer again.
mingw-w64可以用作Visual Studio的替代方案。
SCons 构建系统。
可选的 - yasm (用于WebM SIMD优化)
参见
有关godot的scons用法的概述,请参阅 建筑系统简介 .
设置scons¶
首先,确保启用将python添加到 PATH
在python安装程序中。然后,scons安装程序应该检测并使用现有的python安装。
要检查是否正确安装了python和scons,可以键入 python --version
和 scons --version
进入命令提示 (cmd.exe
)
如果上面的命令不起作用,请确保将python添加到 PATH
环境变量安装后,请再次检查。您可以通过再次运行python安装程序并启用将python添加到 PATH
.
安装Visual Studio警告¶
如果安装Visual Studio 2017或2019,请确保启用 C++ 在要安装的工作流列表中。
如果安装Visual Studio 2015,请确保运行 习俗 安装而不是 典型 并选择 C++ 作为一种语言。
如果您已经在没有C++支持的情况下安装VisualStudio的错误,请再次运行安装程序;它应该呈现给您 修改 按钮。从运行安装程序 Add/Remove Programs 只会给你一个 修理 选项,它不会让你安装C++工具。
编译¶
选择编译器¶
scons将自动查找并使用现有的Visual Studio安装。如果没有安装Visual Studio,它将尝试使用mingw。如果您已经安装了Visual Studio并希望使用mingw,请通过 use_mingw=yes
到scons命令行。
在开发过程中,使用Visual Studio编译器通常是一个更好的主意,因为它链接godot二进制文件的速度比mingw快得多。但是,mingw可以使用链接时间优化(见下文)生成更优化的二进制文件,使其成为生产使用的更好选择。
运行scons¶
打开命令提示后,更改为引擎源代码的根目录(使用 cd
)和类型:
C:\godot> scons platform=windows
您可以指定多个CPU线程用于加速生成:
C:\godot> scons -j6 platform=windows
一般来说,编译godot的线程至少和CPU中的内核一样多,如果不是一个或两个以上的话。请随意将-j选项添加到下面看到的任何scons命令中。
注解
当使用多个CPU线程进行编译时,SCON可能会警告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
. 由于链接时间优化是一个内存密集型过程,因此在编译时需要大约3 GB的可用RAM。
在Visual Studio或其他IDE中开发¶
对于大多数项目,只使用脚本就足够了,但是当需要C++开发时,为了创建模块或扩展引擎,通常需要使用IDE。
通过使用 vsproj=yes
参数,如下所示:
scons p=windows vsproj=yes
您现在可以在Visual Studio解决方案中打开Godot的源代码,并且可以使用Visual Studio的 构建 按钮。
如果您需要编辑构建命令,它们位于“godot”项目设置nmake sheet中。在命令末尾调用scons。如果您犯了错误,请从其他生成配置(debug、release_debug、release)或体系结构(win32/x64)中复制该命令;它们是等效的。
从其他操作系统交叉编译Windows¶
如果您是Linux或MacOS用户,则需要安装 MinGW-w64 ,通常是32位和64位的变体。根据您的分布情况,包名称可能有所不同,以下是一些已知的包名称:
Arch Linux系统 |
|
德比 / 乌邦图 |
apt install mingw-w64
|
费多拉 |
dnf install mingw64-gcc-c++ mingw64-winpthreads-static \
mingw32-gcc-c++ mingw32-winpthreads-static
|
macOS |
brew install mingw-w64
|
马吉亚 |
urpmi mingw64-gcc-c++ mingw64-winpthreads-static \
mingw32-gcc-c++ mingw32-winpthreads-static
|
在尝试编译之前,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中执行以下操作将导致编译器工作正常(版本输出可能因系统而异)::
user@host:~$ ${MINGW32_PREFIX}gcc --version
i686-w64-mingw32-gcc (GCC) 6.1.0 20160427 (Mageia MinGW 6.1.0-1.mga6)
故障排除¶
从一些Ubuntu版本交叉编译可能导致 this bug ,因为默认配置缺少对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 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
如果计划替换标准导出模板,请将其复制到以下位置,替换 <version>
使用版本标识符(例如 3.1.1.stable
或 3.2.dev
):
%USERPROFILE%\AppData\Roaming\Godot\templates\<version>\
名称如下:
windows_32_debug.exe
windows_32_release.exe
windows_64_debug.exe
windows_64_release.exe
但是,如果您使用的是自定义模块或自定义引擎代码,那么您可能希望在此处将二进制文件配置为自定义导出模板:
在这种情况下,您不需要复制它们,只需在 bin\
您的godot源文件夹的目录,所以下次构建时,您将自动引用自定义模板。