Tips/build_system

Last-modified: 2016-01-08 (金) 17:11:00

本体のビルド方法

ソースコードを入手する

Githubから「Download ZIP」する。

VisualStudio2012でビルドする(32bit)

基本的には、日本語化Wikiに書いてることと同じです。

  1. 公式フォーラムから「libbz2.zip」と「bzlib.h」をダウンロードし、「libbz2.zip」は適当な場所に展開する。
  2. OpenTTD用のライブラリの最新版をダウンロードし、適当な場所に展開する。
  3. pthreadのライブラリの最新版FFFTPなどでダウンロードする。
    「prebuilt-dll-x-x-x-release」内の「dll」「include」「lib」をフォルダごとダウンロードする。
  4. ソースフォルダ内のソリューションファイル(Simutrans.sln)を開く。
    この時、コンパイラとライブラリの更新について聞かれるので、更新するを選んでください。
  5. ソリューションエクスプローラのプロパティを開き(レンチのアイコン)、「構成プロパティ→VC++ディレクトリ」を開きます。
    Simu1.PNG
  6. インクルードディレクトリに以下の場所に入っている *.hファイル の入ったディレクトリを追加します。

    • OpenTTDのライブラリ: \(展開先)\OpenTTD essentials\shared\include
    • pthreadのライブラリ: \(ダウンロード先)\include
    • bzlib.hはpthreadのincludeに入れると楽です。
      Simu2.PNG
      注意: 環境によって異なります
  7. ライブラリディレクトリに以下の場所にある *.libファイル *.aファイル *.dllファイル の入ったディレクトリを指定します。

    • OpenTTDのライブラリ: \(展開先)\win32\library
    • pthreadのライブラリ: \(ダウンロード先)\lib\x86 と \(ダウンロード先)\dll\x86
    • libbz2.libはさっきと同じように、pthreadのところへ入れてしまいましょう
  8. ソリューションエクスプローラの「構成プロパティ→リンカー→コマンドライン」を開き、追加オプションに「/SAFESEH:NO」と入力してください。
    Simu4.PNG
  9. 一箇所、ソースをいじるところがあります。
    • 図のように、ソリューションエクスプローラで「simversion.h」を検索して、開く
    • 「#include "revision.h"」の一文を削除
      Simu3.PNG
  10. 「ビルド(B) → ソリューションのビルド」をクリックし、ビルドします。
  11. エラーが無ければ、Debugフォルダ内にSimutrans.exeが出来ています。
    nightly buildからWindows/GDIの「必須DLL他ファイル一式同梱」をダウンロードし、その展開先にさっきのSimutrans.exeを入れてください。
    なお、 \(pthreadのダウンロード先)\dll にある pthreadVC2.dll が無いと動きません。

VisualStudio2012でビルドする(64bit)

注意: なぜか保存・再開できません
基本的には、32bitと同じですが、以下の点が異なります。

  • ライブラリディレクトリを以下のように指定する。

    • OpenTTDのライブラリ: \(展開先)\win64\library
    • pthreadのライブラリ: \(ダウンロード先)\lib\x64 と \(ダウンロード先)\dll\x64
  • ソリューションプラットフォームの変更

    • ツールバーの「Win32」のところのドロップダウンリスト→「構成マネージャー...」
    • 「アクティブ ソリューション プラットフォーム(P)」→「<新規作成...>」
    • 「新しいプラットフォームを入力または選択してください(P):」が「x64」になっていることを確認し、「OK」
      Simu5.PNG
  • Bzip2をコンパイルする

    • bzip2のソースコードをダウンロードする。
    • ソリューションプラットフォームを「x64」にし、ビルドする
    • Debugフォルダ内のlibbz2.libを32bitと同じように配置する
  • これでとりあえず、ビルドできるはずです。
    コンパイルが終わったらSimutrans.exeが出来ます。

    • libbzip2.dllがいると言われるので、コンパイルしたフォルダ内のlibbzip2.dllをコピーする
    • 「\(pthreadのダウンロード先)\dll\x64」内の「pthreadGC2.dll」と「pthreadVC2.dll」も必要です。
    • 32bitとは共存できません