• ベストアンサー

cc hello.cってやっても、、、

大学でC言語を勉強してます。自宅でもlinuxをやろうと思い、RedHat7Jを入れることには成功しました。プログラミングの知識は少しはあるのでいざ!、あの有名なhello.cのプログラムを書いてコンパイルしました。大学のパソコンからならここでa.outと打てば「hello world!」と出るはずが bash:a.out:command not faund とでてしまいます。lsコマンドで見てもa.outはちゃんと存在しているんですが、、なぜこうなるのでしょうか? どなたか回答よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.2

hello.cをコンパイルして作成されたa.outというファイルは通常 カレントディレクトリに作成されます。 ですが、「コマンドサーチパス」にカレントディレクトリが含まれていないため、 「a.out : commans not found」となるのです。 なので、実行する際に「./a.out」のように「./」を付けて 実行する必要があります。 この、「./」は「カレントディレクトリ上のファイル」という意味があります。 または、toysmithさんの言うとおり、set PATH=....を実行する形になるのですが、 通常UNIXを使う上での暗黙の了解として「コマンドサーチパスにカレントディレクトリ を含めると、ウィルスなどに感染しやすくなるため、通常は記述しない」というモノが あります。 面倒に思えるかもしれませんが、「./xxxx」の形で使用することをお薦めします。 P.S. toysmithさんへ、 bashはrehashは不要です。 csh, tcshは必要ですが、、、

isomura
質問者

お礼

詳しい説明、ありがとうございます。成功しました。これを機会にc言語をもっと勉強したいとおもいます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

bashを想定しています。 tcshなど違うshellを使っている場合は補足してください。 ./a.out これで起動しませんか? これがOKなら~/.longinに set PATH="$PATH:./" を追加してください。 bashってrehashいりました?>識者の方 この際、勉強としてbashについて勉強しましょう。 set,export,PATHなどを調べて行けばなぜそうなったかわかるはずです。

isomura
質問者

お礼

ありがとうございます。[hello world]ってでました。難しそうだけどbashについても勉強していきたいと思います。

すると、全ての回答が全文表示されます。

関連するQ&A