2009-08-02 1 views
23

ほとんどのUNIX Cコンパイラは、実行ファイルをデフォルトで "a.out"というファイルにリンクします。どうして?これは文書化された標準ですか、それとも事実上の標準的な動作ですか?これらのコンパイラが "a.out"を生成するのではなく、単にエラーメッセージを出す(または別のデフォルト名を使用する)場合、何が壊れますか?一部のコンパイラでは、実行ファイルのデフォルト名として "a.out"が使用されるのはなぜですか?

+0

あなたは良いアイデアを持っていますか? :) –

答えて

35

a.outはアセンブラ出力を表します。
私は、ほとんどのコンパイラがこの名前をデフォルトとして持つ理由を正当化すると思います。 詳細情報here

+2

a.outも実行形式の名前です。しかし便利な8.3ファイル名にもなります。 –

+2

'a.out'は10年以上にわたってデフォルトの実行形式ではありません。最近はELF(Executable Linkable Format)が使われています。 –

5

A.outは実際にはUNIXの実行可能ファイル形式の名前です。 (ELFは別です)

実行ファイルに明示的に名前を付けないと、コンパイラはその名前を(伝統によって)作成します。

これらのコンパイラ は単に「のa.out」を生成 をアウトエラーの代わりになる場合は何を壊すのでしょうか?

何も壊れませんでしたが、「エラー出力」とはどういう意味ですか?実行可能な名前がリンカーに提供されていない限り、コンパイルを拒否しますか?

関連する問題