为x11编译(Linux, * BSD)¶
要求¶
对于在Linux或其他UNIX变体下编译,需要以下内容:
GCC或Clang
python 3或2.7+
scons构建系统(3.0或更高版本,用于python 3)
pkg config(用于检测以下依赖项)
X11、XCURSOR、XeRAMA、XI和XRANDR开发库
Mesagl开发库
ALSA开发库
Pulseaudio开发库
可选的 -libudev(用
udev=yes
)可选的 -Yasm(用于WebM SIMD优化)
参见
有关godot的scons用法的概述,请参阅 建筑系统简介 .
特定于发行版的OneLines¶
Arch Linux系统 |
pacman -S scons pkgconf gcc libxcursor libxinerama libxi libxrandr mesa glu alsa-lib pulseaudio yasm
|
德比 / 乌邦图 |
sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev \
libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm
|
费多拉 |
sudo dnf install scons pkgconfig libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel \
libXi-devel mesa-libGL-devel mesa-libGLU-devel alsa-lib-devel pulseaudio-libs-devel \
libudev-devel yasm
|
FreeBSD |
sudo pkg install scons pkgconf xorg-libraries libXcursor libXrandr libXi xorgproto libGLU alsa-lib \
pulseaudio yasm
|
圣母 |
emerge -an dev-util/scons x11-libs/libX11 x11-libs/libXcursor x11-libs/libXinerama x11-libs/libXi \
media-libs/mesa media-libs/glu media-libs/alsa-lib media-sound/pulseaudio dev-lang/yasm
|
马吉亚 |
urpmi scons task-c++-devel pkgconfig "pkgconfig(alsa)" "pkgconfig(glu)" "pkgconfig(libpulse)" \
"pkgconfig(udev)" "pkgconfig(x11)" "pkgconfig(xcursor)" "pkgconfig(xinerama)" "pkgconfig(xi)" \
"pkgconfig(xrandr)" yasm
|
OpenBSD |
pkg_add python scons llvm yasm
|
欧彭斯 |
sudo zypper install scons pkgconfig libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel \
libXi-devel Mesa-libGL-devel alsa-devel libpulse-devel libudev-devel libGLU1 yasm
|
索勒斯 |
sudo eopkg install -c system.devel scons libxcursor-devel libxinerama-devel libxi-devel \
libxrandr-devel mesalib-devel libglu alsa-lib pulseaudio pulseaudio-devel yasm
|
编译¶
启动终端,转到引擎源代码的根目录并键入:
user@host:~/godot$ scons -j8 platform=x11
一个很好的经验法则 -j
( jobs )如果不是一个或两个以上的话,那么编译godot的线程至少要和CPU中的内核一样多。请随意添加 -j
您在下面看到的任何scons命令的选项。
如果一切顺利,生成的二进制可执行文件将被放置在“bin”子目录中。这个可执行文件包含整个引擎,运行时没有任何依赖关系。执行这项工作将使项目经理受益。
注解
如果要使用clang而不是gcc进行编译,请使用以下命令:
user@host:~/godot$ scons platform=x11 use_llvm=yes
使用clang似乎是OpenBSD的一项要求,否则字体将无法生成。
注解
如果您正在编译godot以供生产使用,那么您可以通过添加scons选项使最终的可执行文件变得更小和更快。 target=release_debug
.
生成导出模板¶
警告
Linux二进制文件通常不会在比它们所构建的发行版更老的发行版上运行。如果您希望分发适用于大多数分发版的二进制文件,那么应该在旧的分发版(如Ubuntu16.04)上构建它们。您可以使用虚拟机或容器来设置适当的生成环境。
要构建x11(Linux, * bsd)导出模板,使用以下参数运行生成系统:
(32位)
user@host:~/godot$ scons platform=x11 tools=no target=release bits=32
user@host:~/godot$ scons platform=x11 tools=no target=release_debug bits=32
(64位)
user@host:~/godot$ scons platform=x11 tools=no target=release bits=64
user@host:~/godot$ scons platform=x11 tools=no target=release_debug bits=64
请注意,作为主机平台,针对相反位(64/32)的交叉编译并不总是直接进行的,可能需要chroot环境。
要创建标准导出模板,必须将生成的文件复制到:
$HOME/.local/share/godot/templates/[gd-version]/
名字是这样的(即使是为了 * BSD,被Godot视为“Linux x11”):
linux_x11_32_debug
linux_x11_32_release
linux_x11_64_debug
linux_x11_64_release
但是,如果您正在编写自定义模块或自定义C++代码,则可能需要将二进制文件配置为自定义导出模板:
您甚至不需要复制它们,只需在 bin/
您的godot源文件夹的目录,所以下次构建时,您将自动引用自定义模板。