2012-12-15 25 views
31

大学でCクラスを勉強していて、Mac(OSX Lion 10.7を実行中)にTextWranglerテキストエディタを使ってプログラムを書きたいと思っています。 .cファイルを書いたら、gccを使ってコンパイルします。 Apple Developer Toolsからコンパイラをダウンロードしました。Mac OS XでCプログラムをコンパイルして実行するには

これはコマンドラインツールのダウンロードに含まれています。ターミナルを使用してファイルを探し、gcc filename.cを使用してコンパイルします。ここでa.out実行可能ファイルが作成されます。しかし、 "a.out"や "/a.out"と入力すると、 "-bash:a.out:command not found"または "-bash:/a.out:そのようなファイルやディレクトリはありません"この同じ方法を使用する前に、LinuxシステムでCプログラムをコンパイルして実行しました。私のMacで何が間違っていますか?

答えて

40

あなたは、現在のディレクトリがパスにないよう実行ファイルが、カレントディレクトリにあることを示すためにドットを追加する必要があります。

./a.out 
+0

それをやりました!ありがとう! – JT9

+2

@JTWheelerでは、同じディレクトリで複数のCプログラムを手動でコンパイルするときにa.outが上書きされないように、オブジェクトファイルの名前を付けることも考えられます。 'gcc myprog1.c -o myprog1を実行します。'/ myprog1.o'を実行して実行します。ちょうど提案。 代わりに、gccの代わりにclangを使用すると、エラーの詳細がわかりやすくなります。 – Bharat

3

は、chmodの+ X Aで実行可能なアクセス許可を設定してください

+3

gccはあなたのために行います... chmodを実行する必要はありません – benjarobin

+0

正しいですが、これは皆がgccを使用しているわけではないので、良い習慣です。 – MichaelM

4

.outファイルあなたは、スラッシュの前にドットを追加する必要があります。

./a.out 

/a.outは、ルートフォルダにプログラムを実行しようとする(/)。
a.outは、PATH環境変数で定義されているすべてのフォルダでプログラムを検索します。

この同じ方法を使用する前に、Linuxシステム でCプログラムをコンパイルして実行しました。私のMacで何が間違っていますか?

Linuxでも同じ操作が必要です。

17

あなたはただひとつ欠けているだけです! "/a.out"の代わりに "./a.out"にする必要があります。別の便利なことは、複数のコンパイルされたプログラムを持つことができるように出力を変更することです。単純に、あなたは、端末に配置する必要が唯一のものは以下の通りです(ご希望のものと空白を埋める)

gcc nameofprogramyouwrote.c -o whatyouwanttheprogramtobenamed 

幸運!

-2

コンパイラが必要です。しかし、最も簡単な方法は、XCodeをインストールすることです。このようにすれば、 "gcc"にアクセスできます。したがって、

gcc -o mybinaryfile mysourcefile.c 

このように実行します。

./mybinaryfile 

gcc -Wall -o yourFile yourFile.c 

を次に実行する:構築するには

関連する問題