Compiling for Windows with scons/zh

From The Powder Toy
Jump to: navigation, search
Language: English  • 中文

请注意,本教程已失效。请转到使用Visual Studio编译TPT!

本教程使用TPT官方编译系统SCons编译git上的TPT。你需要按照接下来的教程安装git,MinGW,python和SCons。完成所有设置后就可以在30到60分钟内编译TPT。(编译速度取决于网路带宽和CPU速度)

注意:本教程不包括如何设置IDE和编辑代码的信息。请自一个你觉得最方便的编辑器进行编辑。你可能会使用类似Code::Blocks或Eclipse这些编译器,但记事本也能满足要求。因为你可以在完成编辑后配置自动编译命令。如果你使用Visual Studio,请转到使用Visual Studio编译TPT++

如果遇到任何问题,转到The Powder Toy 论坛获取支持。

下载

首先在此处下载Windows版Git: https://git-for-windows.github.io/

若想为所有用户安装Git,需要以管理员模式打开程序。(否则程序会认为你只为自己安装)如果你使用Windows 10,可以选择预设的类Windows风格的控制台。此外,在安装的其他部分建议使用程序的默认设置。

Mingw-gui.png

接下来下载编译器MinGW: http://sourceforge.net/projects/mingw/files/latest/download?source=files

当安装程序要求你选择安装位置时,确保程序安装在"C:\MinGW"下并取消 "install support for the graphical user interface" 选项。到目前这个功能仍不易用。

100%后点击Quit

安装过程可能较为复杂,当进度条到达100%时请点击Quit。

现在,点击此处下载Python:https://www.python.org/ftp/python/3.7.0/python-3.7.0.exe

SCons在64位程序下可能安装失败,建议下载32位。下载速度可能较慢,可以选择其他下载途径。安装时请注意安装目录必须是 "C:\Python37\,其余皆保持默认设置。"

如果你使用多核处理器并想加快编译进度,你还需要下载pywin32拓展模块(非必须)

最后下载编译系统SCons: https://sourceforge.net/projects/scons/files/scons/3.0.1/scons-3.0.1.tar.gz/download

SCons需要安装至Python目录,在scons3.0.1文件夹中打开命令行,键入.\setup.py install --standard-lib 即可。

向环境变量PATH中添加变量

Windows-path.png

为成功编译,你需要添加MinGW和Python工具的安装目录到系统的环境变量。在文件资源管理器中键入"控制面板\所有控制面板项\系统",点击左侧高级系统设置,选择底部的环境变量,在系统变量栏中选中Path并点击编辑,最后依次点击新建并键入

C:\MinGW\bin

C:\Python37

C:\Python37\Scripts

默认系统为Windows 10,其他版本如左图。

要测试添加是否成功,以可以使用Git bash(如果已经开启请重启后再使用)。打开开始菜单在Git文件夹中寻找"Git bash"。运行后会显示一个命令行。键入cc并点击Enter,应该得到的是类似于 "cc.exe: fatal error: no input files, compilation terminated." 的结果。这意味着编译器和其他一切都可以正常工作。但如果结果为 "cc: command not found" ,请检查Path路径和其他步骤是否出错。

现在键入python -h,如果结果为"python: command not found",请检查Path路径和安装路径。正常的运行结果应为许多文字。

Windows-path-test.png

最后,要检查SCons是否正确安装,键入scons.py,得到的结果应该是"scons: *** No SConstruct file found"。但出现"scons.py: command not found"时则需检查Path路径或者是否正确安装。

获取所需库

Mingw-get.png

要完成MinGW的安装,打开Git Bash,复制或键入以下内容到终端。(右键点击并选择Paste)

mingw-get install gcc g++ mingw32-libbz2 bzip2 mingw32-libz zlib mingw32-pthreads-w32

为成功编译TPT我们需要获取一些库。可以在此处下载SDL,Lua和fftw: MingwLibraries.zip

复制这些文件夹至 C:\MinGW

此处下载libsdl2

并在Development Libraries下下载 SDL2-devel-2.0.8-mingw.tar.gz

获得源代码

现在我们需要TPT源代码,使用Git Bash更能显示自己的专业技能。

新建并打开一个文件夹用于存放源代码,右键并选择"在此处打开Git Bash"会开启一个命令行。

接下来的命令会获取源代码和附带的历史信息
git clone http://github.com/ThePowderToy/The-Powder-Toy.git .

结尾的句号代表文件会被下载至当前目录,如果忽略则会在当前目录新建一个文件夹。

当命令结束后文件夹中会显示TPT源代码。

编译

到了编译环节,运行scons.py后会检查库并开始编译。(如果出现无法解决的错误并想获得帮助,请查看文件夹中的config.log并将问题提交至 pastebin.com)取决于你的电脑性能,编译可能需要几分钟到几十分钟。如果编译成功,exe文件会存放在 build/ 文件夹,如果程序能正常运行,就可以开始编写自己的mod了。

此外,若你使用多核心处理器并且已经安装pywin32拓展模块,键入scons.py -j#(#为CPU核心数,-j4为4核)会加快编译速度。


scons可选参数

-- written by mniip, edited by jacob1 -- revision 2 with screenshots, by mniip --汉化 by TOC_Official