• 締切済み

コンパイル ./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

  • .oと.outファイルの違い

    gccでコンパイルするとa.outというものができます。 (-oで何も設定しなければ) これはC++のソースファイル1つをコンパイルした時に できる.oのファイルと同一のものでしょうか? #.oは.outの略? .oのファイルの中でmain関数を持っているものが、実行可能形式に なれるのでしょうか?

  • a.outはどこへ?

    WindowsでCのプログラミングを始めたばかりです。 環境はcygwinを使っているのですが、gccでコンパイルしてもa.outファイルが出来ません。 gccのコマンドの後には特にエラーも出ませんし、一見成功しているように見えるのですが、やっぱりa.outが出来ていません。 なぜなのでしょうか?

  • コンパイル環境の違いによる、浮動少数点の違い

    不動少数(float)を使った、c言語の演算プログラムを作っています。 Aマシン(CentOS5, gcc3.4)でコンパイルした、"test_a.so"と"test_a.a"について、 Aマシンで実行した結果、両者の結果は一致します。 Bマシン(Fedora5, gcc3.0)でコンパイルした、"test_b.so"と"test_b.a"について、 Bマシンで実行した結果、両者の結果は一致します。 Aマシンで実行した結果、両者の結果が異なります。 結果の比較をすると、以下のようになります。 "test_a.so"=="test_a.a"!="test_b.so"!="test_b.a" (1)コンパイル環境と実行環境が違うと、浮動少数の演算に違いがでることがありますか? (2)コンパイル環境と実行環境が違うと、so と aに違いがでることがありますか? 上記2点について、ご存知の方いらっしゃいましたら教えてください。 お願い致します。

  • コンパイル時に a.out と入力するとエラーが出てしまいます。

    コンパイル時に a.out と入力するとエラーが出てしまいます。 テキストファイルを複数 (最大で255個) 書き込むC言語のプログラム「f.c」を作成しまして それらのファイルは全て cygwin/home という場所に保存されます。 ただ、ファイルの中身は多くの文字が並ぶので(最大 500列 × 70000行 程度) 全てのファイルを書き込むには時間がかかりすぎてしまいます。 a.out を使って プログラム内にある scanf("a=", &a); scanf("b=", &b); これらの変数 a,b を出力し 実行結果で書き込まれるファイルを データとして出力する方法が知りたいのですが (この方法をバッチ処理というのでしょうか?) $ cc f.c (← 実行結果の際のコンパイル) その次に a.out と入力するとエラーが起きます。 a.out の使い方や意味を調べてもいまいち理解し難く困っております。 さきほど言った scanf で値を決める a,b を プログラム内で決めるのではなく a.out a b と入力してデータを出力させるには どのようにすればよいのでしょうか? なぜエラーしてしまうのかも教えて頂けないでしょうか? 長々と質問してしまいすみません。 どうか ご回答 よろしくお願いします。

  • Cygwinでコンパイルできません。

    CygwinをすべてDefaultでインストールしました。 テキストエディタとしてTeraPadを利用しています。 テラパッドでtest.cというファイルをつくり、 gcc -o test test.c でコンパイルしたのですが gcc:test.c:No such file or directory gcc:no input files と表示されます。 正常にコンパイルするにはどうしたらいいのでしょうか? 自分はC言語について勉強したばかりでくわしくないので、この質問を書いていて言葉足らずなところがあり説明不十分かもしれませんが、よろしくお願いします。

  • gcc コンパイル killed

    gccでC言語で書いたコードをコンパイルしたところ コンパイルには成功したのですが 実行してみると killed と表示されてしまいます #include <stdio.h> int main(){ printf("TEST\n"); return 0; } こんな簡単なものでもコンパイル後、実行すると killedと表示されTESTと表示されません $gcc test.c -o test $./test killed $ この様になります。ldid -Sでコンパイルされたファイルを直すことは可能なのですが どのコードでも毎回、killedという表示になってしまいます 毎回毎回コンパイル後にldidコマンドを使用するのも嫌なので直したいのですが "再インストール以外"の方法で直してみたいです。今後、同じようなエラーが起きた際、役にも立ちますし、Cについての勉強にもなりますので (再インストールでは詳しい原因がわかりません) 原因をご存知の方がいましたらよろしくお願いします。(Linux)

  • gcc バージョン違いによるコンパイルエラー

    C言語でWeb系のプログラムを作成している者です。 以前まで、OSはFreeBSD 4.11-RELEASE-p12・gccのバージョンは2.95.4でコンパイルできていたプログラムが、OSはFreeBSD 5.4-RELEASE-p8・gccのバージョンは・gccのバージョンは 3.4.2で、今まで出なかったようなエラーが沢山出現し、コンパイルできなくなってしまいました。 OSをインストールし直すのは、既に稼働中のサイトですので厳しく、GCCのバージョンを下げるかソースを書き換えるかして対処する方向で行きたいと考えております。 しかし、gccの2.95.4の圧縮ファイルはもう、gccの公式サイトに落ちておらず、バージョンダウンは難しそうです。 gccのバージョンによるコンパイルエラーを乗り越えた方、ご指摘など有りましたらお教えくださると幸いです。

  • C90とC99の計算結果の違い?

    C言語の質問です。 gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu12) 以下のプログラムをgccでコンパイル・実行すると(1)に入り,"a"が出力されます。unsigned intの計算なのでラップアラウンドが生じtest=4294716272となるのは私の期待どおりです。 ただ、gcc -std=c99でコンパイル・実行すると(2)に入り,"b"が出力されました。c99でコンパイル・実行すると計算結果がなぜ異なっているのかが分かりません。 long test = 0; unsigned int x = 184; unsigned int y = 251208; test = (x-y); if(test == 4294716272){ printf("a");// (1) }else if(test == -251024){ printf("b"); // (2) }

  • 初心者です、Cのコンパイルについて教えてください。

    お世話になります、 puppyライブ版で簡単な Cのソースを作ってコンパイルしたいのですが gcc -o aaa aaa.c で実行すると「bash:gcc:command not found」になります。 基本的な質問ですいませんが宜しくお願い致します。

  • コンパイル

    ubuntuで、 gcc (ファイル名).c とコンパイルをしようとすると、 error: stdio.h: No such file or directory error: math.h: No such file or directory が出てきてしまいます。どうやってコンパイルしたらよいのでしょう?初心者ですのでよろしくお願いします。

専門家に質問してみよう