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

A 回答 (2件)

hello.cをコンパイルして作成されたa.outというファイルは通常


カレントディレクトリに作成されます。
ですが、「コマンドサーチパス」にカレントディレクトリが含まれていないため、
「a.out : commans not found」となるのです。
なので、実行する際に「./a.out」のように「./」を付けて
実行する必要があります。
この、「./」は「カレントディレクトリ上のファイル」という意味があります。

または、toysmithさんの言うとおり、set PATH=....を実行する形になるのですが、
通常UNIXを使う上での暗黙の了解として「コマンドサーチパスにカレントディレクトリ
を含めると、ウィルスなどに感染しやすくなるため、通常は記述しない」というモノが
あります。

面倒に思えるかもしれませんが、「./xxxx」の形で使用することをお薦めします。

P.S.
toysmithさんへ、
bashはrehashは不要です。
csh, tcshは必要ですが、、、
    • good
    • 0
この回答へのお礼

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

お礼日時:-0001/11/30 00:00

bashを想定しています。


tcshなど違うshellを使っている場合は補足してください。

./a.out
これで起動しませんか?
これがOKなら~/.longinに
set PATH="$PATH:./"
を追加してください。

bashってrehashいりました?>識者の方

この際、勉強としてbashについて勉強しましょう。
set,export,PATHなどを調べて行けばなぜそうなったかわかるはずです。
    • good
    • 0
この回答へのお礼

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

お礼日時:-0001/11/30 00:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ