- ベストアンサー
コンパイルについて
はじめにnethackのHPを載せます。これのソースコードについて質問です。 http://www.nethack.org/common/index.html これはいったいどのようにして作られているのでしょうか?ファイルの中身をみて色々調べたらautotoolsというのを使っているのかなという所まではたどり着きました。気になる点を以下にピックアップしたのでわかる限りでかまいませんので質問にお答えください。 1.このソースコードはどのようなツールで作られたのでしょうか?私はVisualCしか使ったことがありませんが、一つ一つファイルを手作りで作り上げたとは思えません。 2.このソースコードがあればwindowsや、Mac、Unixといった環境の実行ファイルにコンパイルできるのでしょうか。もしそうならそのコンパイラはどんなものでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >1 w おもしろいですね。 たしかにいまのツールから考えると、想像を絶する作業になるのかもしれませんが、手で書いてるとおもいます。 まぁでもこれはまだC言語がつかえているだけましで、50年前のプログラマは01の列を手で入力していたらしいので、もっともっと想像を絶していますね。 >2 コンパイラで最も有名なのはGCCですね。 そもそもC言語は移植性の高さを狙って設計された言語ですので、そのプラットフォームにコンパイラがあれば、そこで動くコードが生成できます。(まぁ実際にはうまくうごかないことがあるのですがw) 今ではC言語は移植性がない言語(機種依存が激しい)となり、Java言語などはこれらの問題を解決した設計です。 いまの言語やいまの技術をやるのも楽しいんですが、コンピュータは古くから積み上げられてきた技術の上にありますので、そこらへんを勉強するといまの技術はある程度理解がすすみますよ。 windowsにgccはありません。代わりにmingw、cygwinというコンパイラがgccを模倣して作られています。 ちなみにautotoolsというのはautomake, autoconf, libtoolなど、環境に応じたビルド設定からビルドまで行ってくれるツールで、たとえば「この関数はMacでは使えるけどWindowsでは使えない。Macってきたらこっちを実行して、windowsってきたらこっちを実行させよう」というコードを書いたとします。 コードをそう書いていても実際にダウンロードされた先は様々です。 そこでautotoolsは「この人の環境はMacだよ~」「Linuxだよ~」と教えてくれる訳です。こうやって、ひとつのソースコードでいろんな環境で動くソフトが作れます。
その他の回答 (1)
- ESE_SE
- ベストアンサー率34% (157/458)
一つ一つファイルを手作りで作り上げたのでしょう。 手元にあるjNetHackよりライセンスを確認すると、 NETHACK GENERAL PUBLIC LICENSE(Copyright 1989 M. Stephenson) (Based on the BISON general public license,copyright 1988 Richard M. Stallman) との記述があります。恐らくビジュアルでコードを生成するツールどころかウィンドウマネージャーもあまり広まっていない次期ではないでしょうか。 当時はUNIX上でプレイできるゲームはほぼ無かったのですが、そこへ降って湧いたように現れたのがRogue。 唐突に現れたキャラクターベースのダンジョンにコンピュータ界は熱狂したと言われています。 このRogueが(一説によるとソースコードの紛失で)更新されなくなり、幾つかの似たゲームが開発されるに至りました。 その中の雄がHack、そしてその直系の子孫がNetHackです。 どれだけコンピュータ界が「ゲームに飢えていたか」が窺い知れますね。 各OS環境に対応したANSI Cコンパイラがあればコンパイル可能です。 Visual C++もANSIに対応したコードのコンパイルは可能ですね。
お礼
回答ありがとうございます。 将来的にこのようなゲームを作れるスキルをつけたいなと思ってソースコードを見たところ絶望的な予感がしました。 やはり、このソースは全てのOSに対応させるような汎用的なソースだったのですね。各OSに対応したコンパイラ環境とは無料で構築できるのでしょうか。