• 締切済み

コンパイル ./aと./a.out の違い

ほんとにcの初心者なのですが、 今Tera Termを使って、ソースを書いて、コンパイル、実行をしているのですが、 例えばtest.cというファイルを gcc test.c とやってコンパイルして、 a.outというファイルができます。 それを./aとやれば実行できると聞いてやってみたのですができません。 ./a.outはできるのですが なぜなのでしょうか??

みんなの回答

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.2

>それを./aとやれば実行できると聞いてやってみたのですができません。 それは、Cygwinでgccを使ったときの話と混同されているように思います。 上記環境では、defaultでa.exeが生成されるので、./aで、実行可能です。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

Tera Termを使って接続している先の環境がわかりませんが、GCCは、特に出力ファイル名を指定しない限り、a.outというファイルを出力します。a.outが出力されたのですから、実行するときはその名前を指定するのが当然です。 一方、Windows上でGCCを使う場合(普通はCygwinかMinGWだと思いますが)、a.outではなくa.exeというファイルが出力されます。そのため、./aとすれば実行することができるのです。 つまり環境によって、同じGCCでもデフォルトの振る舞いが異なります。ですから、質問時には自分が使っている環境を詳しく書いてください。

gyagyugyo
質問者

お礼

ありがとうございました windowsとそれ以外で違うということは知りませんでした。 環境によっては違うということを知っておきます。

関連するQ&A