TerminalでのC言語プログラムの実行

愚問かも知れませんが、教えて下さい:TerminalのlocalhostでC言語プログラム(お馴染みのhello.c)をmakeし、実行形式helloを作成しましたが、プロンプトにhelloを入力しても"Command not found."と応答され、実行されません。どうしたら実行できるのでしょうか?

投稿日 2001/06/04 19:45

返信: 12

2001/06/04 20:09 Community User への返信

a.outじゃなくてhelloと言う名前の実行ファイルが出来ているのですね?
であれば
./hello
として実行してみて下さい。
おそらくpath環境変数にカレントディレクトリが含まれていないのだと思います。

2001/06/04 20:11 Community User への返信

cc で無指定だと a.out になりますがそうされてますか? また,実行 file は path 指定してしていますか?(例えば ./a.out)

2001/06/05 16:49 Community User への返信

もだサン、koguleサン、ありがとうございます。
実行ファイル名は、helloですが、./helloと入力すると、
./hello: Permission denied.
と応答されます。どうすれば、よいのでしょうか?

2001/06/05 17:16 Community User への返信

lsコマンドで表示されるそのファイルの情報はどうなっていますか?
コマンドラインから
ls -l
と入力して
-rwxr-xr-x 1 oda wheel 9456 Jun 5 20:08 hello*
となっているか確認してみて下さい。
もしなっていないのであれば
chmod a+x hello
として実行属性をつけるなりしてみてください。
通常、
cc hello.c -o hello
として実行ファイルを生成したのであれば実行属性は付いているはずなのですが。
cc hello.c ; mv a.out hello
でも可。

2001/06/07 19:46 Community User への返信

(もだサン、ありがとうございます。また、返事が遅れてすみません。)
実は、make hello.cでコンパイルしておりました。おっしゃるように、chmodを実行して、./helloと入力すると、
./hello: Bad executable (or shared library).
と応答されました。
 そこで、素直にccでコンパイルしなおすと、無事、実行できました。makeによるコンパイルでうまく実行できない理由は、何でしょうか?

2001/06/07 21:13 Community User への返信

make hello.cでコンパイルしておりました


それで実行ファイルが出来ますか? やるなら make hello だと思いますが……

それから,MacOS X は BSD 系列とは云いながらそうでないところも色々あります。make もその一つで bsd make ではなく gnumake を使っていますから,bsd make のつもりでいると挙動の違いに悩まされます。御注意を。
# make については,bsd の資料より Linux の資料が正しい事になる。

2001/06/08 19:45 Community User への返信

(koguleさん、ありがとうございます。)
おっしゃるとおり、make hello.cでコンパイルはできません。
make helloでコンパイルしておりました。
 そこで、helloを消去して、再度、make helloを実行したところ、何と./helloで正常に実行できるではありませんか。最初と違う点といえば、既に、chmodで属性(?)を変えたことが、hello消去後にも有効になっていることぐらいです。これが理由でしょうか? makeの仕組みを知らないシロウトは悲しいですね。
 何か良い参考書またはWebページを御存知でしたらお教え下さい。

2001/06/09 04:38 Community User への返信

そこで、helloを消去して、再度、make helloを実行したところ、何と./helloで正常に実行できるではありませんか。最初と違う点といえば、既に、chmodで属性(?)を変えたことが、hello消去後にも有効になっていることぐらいです。これが理由でしょうか?


いや,消去した file 属性が影響するという事はあり得ないです。以前は何かの拍子に実行属性が外れてしまったんでしょう。

make に関しては,/Developer/Documentation/Commands/gnumake/ に gnu make の info の html 版があります。また,世の中訳も判らず Linux 流行りですから,make の参考書は書店に行けば色々あると思いますが。

でも hello.c を compile するぐらいなら,make を使わないのが正解だと思いますが。

2001/06/10 14:36 Community User への返信

 このスレッドを参考にして7年振りに、C言語プログラムを作ってみました。
 久し振りにプログラミングの楽しさを味わっています。
 ちょっとしたプログラムなら、いちいちProjectBuilderとやらを立ち上げるまでもなく、コマンドラインからCCでコンパイルした方が手軽ですね。
 7年前にはQuadra700を使ってC言語プログラムで円周率を30万桁計算しましたが、再度試してみようかと思っています。

2001/06/10 15:46 Community User への返信

C言語プログラムで円周率を30万桁計算しましたが、再度試してみようかと思っています。


この手の事がやりたいなら,C よりも Ruby の方が簡単で,しかも美しく出来ますよ。
# もっとも簡単過ぎて,面白くないかも知れませんが……

何しろ Ruby は“楽しいプログラミング”を標榜していますから,Terminal 上で GUI や高速実行が必要無い program なら,断然 Ruby をお薦めします。
# と,機をみて宣伝しておきます :-)

2001/06/10 21:57 Community User への返信

本家で配付されている Ruby の最新 version に問題がある事を先ほど気付きました。簡単な入手先がない状態なので,ちょっと試してみたいという人の為の配付物と install 方法をこちらに置きましたので,興味のある方はどうぞ。DeveloperTools を入れている必要もありません。

2001/06/16 22:59 Community User への返信

 koguleさん、いろいろと情報をいただきありがとうございました。Rubyについては、(株)ローカス発行の「MacOSX導入パワフルガイドブック」のp.209にも紹介されていますね。今後、参考にしてみます。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

TerminalでのC言語プログラムの実行

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。