11

私の C プログラムが情報を出力しないのはなぜだろうと思っています。私はプログラミングに関しては 100% の初心者で、ここ数週間、Ruby と Python でいくつかのことを学ぶことができましたが、C のことはまったく理解できていません。以下は、誰もが最初に学ぶ基本的な単純なプログラムです。

#include <stdio.h>

int main()

    {
        printf("Hello World\n");
        return 0;
    }

これを書いたので、hello.c として保存します。今、それがあるディレクトリに cd してから、試してみます

gcc hello.c

何も起こりません-エラーはありません、ただ何もありません。代わりに書くと

gcc hello.c -o hello

新しい実行可能ファイルがディレクトリに書き込まれ、それを開くと、通常のコマンドラインのように見え、最初に端末で期待したように「Hello World」がそこに書き込まれます。

私も hello.c を実行可能ファイル自体にしようとしましたが、そうすると

syntax error near unexpected token `('
`int main()'
4

7 に答える 7

17

入力すると

gcc hello.c

そして何も起こりません、それは予想されることです。もっと正確に言えば、GCCはデフォルト名(私にとっては)で実行可能ファイルをコンパイルしますa.out。次に./a.outコマンドラインで入力すると、出力が表示されます。

Ruby / Pythonのバックグラウンドからではありますが、ここにはもう少し大きな概念上の問題があると思います。RubyとPythonは(通常)インタプリタ言語です。つまり、スクリプトファイルを作成するときに、スクリプトファイルを実行可能としてマークでき、魔法を使ってOSがファイルを読み取って実行するプログラムを起動します。ただし、Cはコンパイルされます。したがって、GCCを実行すると、ソースファイルが取得され、デフォルトまたは指定された名前の実行可能ファイルに変換されます。この時点では、コンパイルプロセスに問題がない限り、出力が表示されることは期待できません。次に./hello、実行可能ファイルであるを実行して、出力を確認できます。

hello.cこれは、実行可能ファイルとしてマークして実行できない理由も説明しています。最初に実行可能ファイルにコンパイルする必要があります。システムがシェルスクリプトのふりをしているようですが、そうではなく、構文エラーが発生しています。

于 2012-06-12T15:49:28.220 に答える
8

gcc hello.cという名前のファイルa.out
gcc hello.c -o helloを生成します という名前のファイルを生成しますhello

これらは実行可能ファイルであり、出力を取得するにはこれらを実行/実行する必要があります。

これらを次のように実行します

./a.outまた./hello

于 2012-06-12T15:44:42.787 に答える
7

gcc hello.c -o hello は、hello.exe という名前の実行可能ファイルを作成することを指定します。

プログラムを実行するには、すべての C ファイルをコンパイルしてから実行可能ファイルを実行する必要があります。.c ファイルを実際に実行することはできません。exe を指定しないと、そのままコンパイルされます。エラーがないという事実は、コードが正しいことを意味するため、良いことです。:)

于 2012-06-12T15:44:51.820 に答える
5

最初に、実行可能ファイルの名前は「a.out」(Windows では「a.exe」) でした。これは、gcc によって実行可能ファイルに付けられた歴史的なデフォルト名です。

ソースと実行可能ファイルの違い、および開くことと実行することの違いを理解するのにも時間を費やす必要があります...

于 2012-06-12T15:43:36.010 に答える
3

プログラミングへようこそ、そしてStack Overflow!

gcc hello.c

ファイルをコンパイルし、実行可能ファイル'a.out'を生成しますが、実行しません。そのため、コマンドラインでこれ以上何も起こりませんでした。
実行を開始するには、次のように入力する必要があります。

./a.out

私が正しく理解していれば、「こんにちは」の場合と同じように。
Cでプログラミングしたい場合は、コンパイル、リンク、実行の違いを学ぶ必要があります。初心者向けの優れた本やチュートリアルを見つけてください。それだけの価値があります。
乾杯!

于 2012-06-12T15:50:22.200 に答える
0

あなたは

syntax error near unexpected token `('
`int main()'

hello.c ソース ファイルに保護を設定して実行しようとすると、エラーが発生します。

gcc を使用すると、.c ソース ファイルが実行可能なバイナリ プログラムに変換されます。

gcc -o hello hello.c

私が使用した順序は重要ではありません。私はこの方法でコンパイルすることに慣れています。このようにコンパイルしました

gcc hello.c -o hello

これは問題ありません。

コンパイルとリンクが成功すると、hello という出力ファイルが作成されます。これを実行します。

./hello
于 2012-06-12T16:01:24.763 に答える
-1

ターミナルウィンドウを表示する前に#include<conio.h>、インクルードとインクルードを試しましたか。getch()return 0;

于 2014-02-09T17:19:00.670 に答える