MinGW

出自OpenTTD 运输大亨

跳转到: 导航, 搜索

目录

介绍

本页面是为指导在win32环境下如何使用MinGW编译OpenTTD

前言

  • 源代码测试:OpenTTD-0.6.0-BetaX
  • 使用的软件包如下:

以上软件需要30MB空间,源代码需要30MB空间,因此请保证磁盘空间在250MB以上。

安装MinGW

请注意:MinGW的安装目录中不能包含任何的空格。

  1. 运行MinGW 5.1.3 安装文件。
  2. 安装时,请选择 Candidate, 然后选择 Minimal install 并勾选 g++ compiler.

安装MSYS

请注意:MinGW的安装目录中不能包含任何的空格。

  1. 运行MSYS安装程序时,你将在安装窗口中看到以下信息:
    This is a post install process that will try to normalize between
    your MinGW install if any as well as your previous MSYS installs
    if any.  I don't have any traps as aborts will not hurt anything.
    Do you wish to continue with the post install? [y/n ]

    输入 "y".

  2. Do you have MinGW installed? [y/n ]
    输入 "y".
  3. Please answer the following in the form of c:/foo/bar.
    Where is your MinGW installation?

    输入你所安装的MinGW的路径,请注意必须是“/”倒如“C:/MinGW”,如果输入有误,最好是重新安装MSYS!

  4. 说明:MinGW是从GNU/Linux移植过来的,所以相关软件都保留了很多Linux的痕迹,本文中一些目录结构可能比较难以理解。Linux中有一个“根目录”,用“/”表示,Linux下所有的目录都在这个目录之下,MSYS虽然在Windows下,但是也沿用了Linux的习惯,将MSYS的安装目录作为根目录。比如下文中提到的几条命令:
    tar -xvjf wget-1.9.1-mingwPORT.tar.bz2
    mkdir -p /usr/local/bin
    cd wget-1.9.1/mingwPORT
    cp wget.exe /usr/local/bin
    mkdir /usr/src
    ./mingwPORT.sh
    
    这里第二行的命令中“/usr/local/bin”就是这种用法,实际是指的MSYS的安装目录(被当作根目录)下的相应目录。这条命令具体的意思是在 MSYS的安装目录下的usr目录下的local目录下建立一个名为bin的目录。当然我们在Windows下可能不习惯用输入命令的方法,直接用我们熟悉的方法建立目录也是可以的。

安装SVN

  1. 在MSYS安装目录下建立一个local目录。
  2. 从SVN压缩包中解压 bin, iconv, licenses, share 几个目录到上一步所建立的local目录中。

测试MInGW的安装

  • 运行MSYS
  • 输入以下命令:
    make -v
    gcc -v
    svn help
  • 请检查输出结果,看是否安装正确。

编译 wget

  1. wget-1.9.1-mingwPORT.tar.bz2 文件放入某个目录 (例如:/home).
  2. 运行 MSYS.
  3. 请确认你的当前目录与该文件所放的目录相同,然后运行以下命令:
    tar -xvjf wget-1.9.1-mingwPORT.tar.bz2
    mkdir -p /usr/local/bin
    cd wget-1.9.1/mingwPORT
    cp wget.exe /usr/local/bin
    mkdir /usr/src
    ./mingwPORT.sh
    然后按回车直到开始安装。
  4. 程序将自动下载wget源代码, 并开始安装和编译。
  5. 删除wget临时文件,请运行以下命令:
    rm /usr/local/bin/wget.exe

编译zlib

  1. 请将 zlib-1.2.3-mingwPORT-1.tar.bz2 文件放入某个目录 (例如: /home)
  2. 运行 MSYS.
  3. 请确认你当前的目录与该文件所在的目录相同,并运行以下命令:
    tar -xvjf zlib-1.2.3-mingwPORT-1.tar.bz2
    cd zlib-1.2.3/mingwPORT
    ./mingwPORT.sh
    按回车直到开始安装。
  4. 程序会开始下载源代码,并安装和编译Zlib。
  5. 要使Zlib生效,请输入以下命令:
    mkdir /usr/local/include
    mkdir /usr/local/lib
    cp /mingw/include/zlib.h /usr/local/include
    cp /mingw/lib/libz.a /usr/local/lib

编译 pnglib

  1. libpng-1.2.8-mingwPORT.tar.bz2 放入某个目录 (例如: /home)
  2. 运行 MSYS.
  3. 请确认你的当前目录与该文件所在的目录相同,并运行以下命令:
    tar -xvjf libpng-1.2.8-mingwPORT.tar.bz2
    cd libpng-1.2.8/mingwPORT
    ./mingwPORT.sh
    按回车直到程序开始安装。
  4. 程序自动下载源代码,并安装和编译。

编译 freetype

  1. freetype-2.1.9-mingwPORT.tar.bz2 放入某个目录 (例如: /home)
  2. 运行 MSYS.
  3. 请确认你的当前目录与该文件所在的目录相同,并运行以下命令:
    tar -xvjf freetype-2.1.9-mingwPORT.tar.bz2
    cd freetype-2.1.9/mingwPORT
    ./mingwPORT.sh
    Download files?(Yes),请按回车,SF Mirror?(Yes),按回车,选择镜像网站,请选择镜像3,台湾镜像。后面的全部按回车默认安装。
  4. 程序自动下载源代码,并安装和编译。

获得源代码

有很多方式可以获得OpenTTD源代码:

这是其中之一:

  1. 运行 MSYS.
  2. 运行以下命令:
    mkdir ~/ottdsrc
    cd ~/ottdsrc
    svn checkout svn://svn.openttd.org/trunk
  3. 其中之二:在openttd的官方网站上下载源代码包。

编译 OpenTTD

如果你编译出现某些问题时,请不要灰心,可能是因为源代码有错误。

  1. 运行 MSYS.
  2. 运行以下命令:
    cd ~/ottdsrc/trunk
    ./configure
    make
    编译中可能会出现一些警告,一般情况下不会有太大的影响。
  3. 编译完成后,会生成文件openttd.exe, 程序会拷贝到./bin子目录下。

测试 OpenTTD

  1. (TTD)\data\ 目录中拷贝以下文件到 (OTTD)\data\目录中:
    sample.cat
    trg1r.grf
    trgcr.grf
    trghr.grf
    trgir.grf
    trgtr.grf
    
  2. 复制 (TTD)\gm 目录中拷贝以下文件到 (OTTD)\gm 目录中.(注意: 这一步是可选的。不操作游戏没有音乐。)
  3. 双击 openttd.exe 运行。
  4. 开始享受游戏吧!

简便方法

下载buildottd,然后按照编译wget和freetype的方法,就可以使buildottd支持中文了。超方便!运行msys请点击:\buildottd\msys \msys.bat就可以了。这个工具直接用好像不是太方便,但是可以用它偷一下懒,使用它可以跳过上面自己编译一些软件的步骤,下载它安装好以后,上面提到的那些东西除了FreeType都有了,实际上它也只是在MSYS的基础上加了一个外壳而已,用的还是Mingw和MSYS,所以只需要编译wget 和FreeType就可以拿来编译OpenTTD的源代码了。并且下面那个.net 2.0 framework并不需要。注意:Buildottd需要Microsoft .NET 2.0 framework 支持,请搜索相关下载。

个人工具