Darkside(リンクエラー修正しました)

2015年2月28日(土) 20:06

コンパイル成功

 make を実行すると、いきなりエラーが出た。gcc が実行されるはずなのに、代わりに g++ が実行されている。そして、インクルードファイルが見つからない。インクルードPATH は、パラメーターで指定されるはずだ。ところがパラメーターが何も指定されないまま実行されている。これでは見つかるわけがない。
 この訳の分からない現象は、どういうことだ?

 makefile を調べると、ソースファイルが *.cpp なのに *.c と記述されている。そのため変換規則に引っ掛からず、gcc は実行されないわコマンドラインパラメーターは挿入されないわ・・・
 だが、この makefile は自作ではない。ソースファイルに含まれていたものである。そこに、拡張子を間違ったまま公開されているのはおかしい。
 こうして、安直なミスに気付いた。それは、ソースファイルの入手先である。いきなり検索して、正式ではない場所からダウンロードしてしまっていたのだった。PSXjin の正式なサイトでは、アーカイブしたソースは配布していない。個々のファイルを随時更新している。

 実行用バイナリのバージョンは 2.0.2 となっているが、恐らく r719 ぐらいである。番号は、ソース改変履歴の回数。
 最新は r726 となっていて、2013年の修正。つまり、2011年を最後に更新が放棄されていたわけではなく、マイナーな修正が何度か行われていてそれはソースしか公開されていなかったのである。
 ただし、更新頻度は年に数回。更新も、数行の小規模なものが多い。だからいちいちバイナリを更新していなかったようだ。また、自前の改造に加えて保守するとしても、それほどの負担にならずに済みそうである。

 そしてこの更新履歴を見ると、すぐに Visual C++ 2010 対応の修正が行われていたことを発見。
 何と、MinGW ではなく VC2010 で動くようになっていた!
 要するに、製作者が処理系を MinGW から VC に変更していて、そのため makefile は古いまま更新されていなかったのである。コンパイルには、VC が必要である。Win32 フォルダ下に、Microsoft Visual C++ 2008 用のプロジェクトファイルが存在していた。

 VC2010 は非常に高価だが、Express エディションなら無料である。

 さっそくダウンロードする。
 無料同士となれば、コマンドラインツールの MinGW を使うよりも VC の方が遥かに開発環境が整っている。処理系の乗り換えは当然の決定だ。

 注意点として、サービスパック1は必須。当てておかないとコンパイルは成功しない。

 公開されているのは VC2008 用のプロジェクトファイルなので、読み込むと最初に変換が行われる。
 コンパイルは無事に完了し、公開バイナリよりも新しい r726 の PSXjin が手に入った。

 ただし、警告が出ている。このままでは、デバッグできない。
 出力ディレクトリーをプロジェクトファイルと同じ場所とし、出力ファイル名も psxjin-debug.exe ではなく psxjin.exe となるようにする。
 これで、普通に使用しつつデバッグも可能となる。

 これなら、改造やる気も出る。

 なお、r726 になってもネジコンには対応していないし、lua スクリプトでアナログ入力することもできない。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4