まずはソースファイルを作ります。エディタで次のプログラムを書いてHello.cという名前で保存します。このプログラムは有名なプログラムです。
#include <stdio.h> int main() { printf("Hello, World!\n"); return 0; }
Hello.c という名前のファイルができているか確認します。
端末から ls と入力します。このページでは実際に入力する文字にこの色をつけ、太字にしています。
~/c$ ls Hello.c
ls はフォルダ内のファイルを表示するコマンドです。Hello.c というファイルしかないのがわかります。
プロンプトは ユーザー名@ホスト名:カレントディレクトリ名$ ですが、これからも省略して カレントディレクトリ名$ だけ書きます。~ はユーザーホームディレクトリを表しますから、~/c はユーザーホームディレクトリの中のcというディレクトリです。カレントディレクトリは現在作業している場所という意味です。
コンパイルは端末で指令します。gcc が コンパイルしなさいというコマンドです。
~/c$ gcc Hello.c -o Hello ~/c$
なにも反応なく次のプロンプトがでたら成功です。
ls で確認すると、Hello という名前のファイルができていることがわかります。
~/c$ ls Hello Hello.c
コンパイルができなかったときには、知らせてきます。たとえば、
~/c$ gcc Hallo.c -o Hallo gcc: Hallo.c: そのようなファイルやディレクトリはありません gcc: no input files ~/c$
この場合は、「Hallo.c というファイルをコンパイルする指示だったが、Hallo.c というファイルがなかった」と言っているのです。Hallo.c と Hello.c の一字違いですがコンピュータは厳密です。あるいはエディタで保存したときの名前が違っている場合も考えられます。特にLinuxでは大文字と小文字を区別するので注意して下さい。
Helloという名前のファイルができているのは、-o の後ろに Hello と書いたからです。
~/c$ gcc ソースファイル名 -o 出力ファイル名
プログラムの実行も端末から行います。
~/c$ ./Hello Hello, World!
Hello, World! が実行結果です。このプログラムは、端末に Hello, World! と表示をするプログラムなのです。
この時実行されるのはHello.cではなくコンパイルして作成されたHelloです。
もう一度ソースを表示します。説明の都合上、先頭に行番号をつけました。実際のソースファイルでは行番号とコロン( 例えば、1: など)はありません。
1:/* kadai rei 1 */ 2:#include <stdio.h> 3: 4:int main(void) 5:{ 6: printf("Hello, World!\n"); 7: return 0; 8:}
以下、各行の説明です。
printf("...");
は、ディスプレイに " " で
くくられた文字列を表示するという命令です。
(実は、printf も関数の一つです)\n
は改行するという意味です。