PC6001VX を Macでビルドしようぜ

http://eighttails.seesaa.net/article/305067428.html#more

PC6001VX の Ver.2.11 がでているようですね。
これを、Macで、ビルドしてみましょう。


まず、前提条件としては、

  • 最新版のXcode と、コマンドラインツールをインストールしてある
  • 最新版のQt をインストールしてある


OSは、El Capitan です。

PC6001VX_2.11_src.tar.gz を落として、適当なディレクトリー(~/hoge) に展開します。


テキストエディターで、PC6001VX.pro を開きます。
20行目から、下記の2行の先頭の # マークを削除します。

#DEFINES += NOJOYSTICK
#DEFINES += NOAVI

   ↓

DEFINES += NOJOYSTICK

DEFINES += NOAVI




src/Qt/osdQt.cpp 11行目の SDL2/ を削除 (NOJOYSTICK の前の # マークを削除していれば、不要です)

#ifndef NOJOYSTICK
#include <SDL2/SDL.h>
#endif

    ↓

#ifndef NOJOYSTICK
#include
#endif


src/pc6001v.h 98行目から

IMG_EXTと、" の間に、空白を1文字挿入する。

#define FONTZ_FILE "fontz12."IMG_EXT /* 半角フォントファイル */
#define FONTH_FILE "fonth12."IMG_EXT /* 全角フォントファイル */

#define FONTZ_FILE "fontz12." IMG_EXT /* 半角フォントファイル */
#define FONTH_FILE "fonth12." IMG_EXT /* 全角フォントファイル */


というか、パッチファイルを作れという話ですよね。。(^^;;


動画を作成するライブラリを入れるのに挫折したので、-DNOAVI で、除外しています。

他環境では、何故か、SDL2/ を付けないと行けないようです(?)
でも、MacSDLのインクルードファイルは、SDL2/ ではなく、SDL/ に有るので、これがついていると、上手くいきません。


C++11 では、"リテラル"と、識別子は、くっついていると、ダメなようです。これも、意味不明。それも、警告じゃなくて、コンパイルエラーですからね。。 まぁ、くっついていると、見にくいから。。というのはありますが。。


具体的なエラーは下記の通り。。
src/Qt/../pc6001v.h:98:31: error: invalid suffix on literal; C++11 requires a
space between literal and identifier [-Wreserved-user-defined-literal]


ここに対処方法が書かれていました。要するに、空白文字を1文字入れるしかないようです。。
http://wlog.flatlib.jp/item/1627