2

Mac のターミナルで C ファイルをコンパイルしていますが、a.out ファイルを実行すると、古いバージョンのファイルしかコンパイルされません。

たとえば、C ファイルが "Hello, World!" を出力するように作成されているとします。gcc を使用してコンパイルし、a.out ファイルを実行すると、a.out ファイルは "Hello, World!" を出力します。

次に、C ファイルを変更して "Goodbye" を出力し、それをコンパイルしてから a.out ファイルを実行すると、ターミナルは引き続き "Hello, World" を出力します。これを修正する方法を知っている人はいますか?

ターミナルに入力しているのは

gcc main.c
~/a.out

入力する必要があるのはどれですか?

私が何かを十分に明確にしていない場合はお知らせください。ありがとう!

4

4 に答える 4

8

入力しています

~/a.out

これは、「a.outホーム ディレクトリからプログラムを実行する」ことを意味します。入力したいと思います

./a.out

これは、「a.out現在のディレクトリからプログラムを実行する」ことを意味します。を使用している場合gcc、新しく作成されたプログラムは現在のディレクトリ (ホーム ディレクトリにいる場合を除き、同じ場所ではありません) に配置されるため、新しいバージョンは適切なプログラムを実行します。

お役に立てれば!

于 2013-01-31T05:25:20.883 に答える
6
gcc main.c
~/a.out

最初の行は現在のディレクトリで a.out にコンパイルされ、2 行目は HOME ディレクトリから a.out を実行します。ホームディレクトリにいますか?

そうでない場合は、2行目を次のように変更します

./a.out

.現在のディレクトリを意味します。したがって、現在のディレクトリでファイルを./a.out実行することを意味します。a.out

于 2013-01-31T05:25:08.777 に答える
2

ホーム ディレクトリ(「参考文献」を参照)~/a.outからバイナリを実行すると、新しい をコンパイルする場所ではない可能性があります。echo "$HOME"main.c

これを試してください: ./a.out(現在のディレクトリから実行)。

于 2013-01-31T05:26:17.673 に答える
2

使用する必要があります

gcc main.c
./a.out

(ホームディレクトリ.)ではなく(現在のディレクトリ)に注意してください。~このgccコマンドは、コードをコンパイルするときに a.out を現在のディレクトリに書き込みますが、これは必ずしもホーム ディレクトリではありません。

于 2013-01-31T05:26:27.747 に答える