- 締切済み
コンパイル ./aと./a.out の違い
ほんとにcの初心者なのですが、 今Tera Termを使って、ソースを書いて、コンパイル、実行をしているのですが、 例えばtest.cというファイルを gcc test.c とやってコンパイルして、 a.outというファイルができます。 それを./aとやれば実行できると聞いてやってみたのですができません。 ./a.outはできるのですが なぜなのでしょうか??
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 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でもデフォルトの振る舞いが異なります。ですから、質問時には自分が使っている環境を詳しく書いてください。
お礼
ありがとうございました windowsとそれ以外で違うということは知りませんでした。 環境によっては違うということを知っておきます。