为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

一个很好的经验法则 -jjobs )如果不是一个或两个以上的话,那么编译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++代码,则可能需要将二进制文件配置为自定义导出模板:

../../_images/lintemplates.png

您甚至不需要复制它们,只需在 bin/ 您的godot源文件夹的目录,所以下次构建时,您将自动引用自定义模板。