はじめての C

[Learning GNU C]

1.4. GCC 入門

では tiny という 小さな code と それを コンパイルする 方法を 示そう。 ここでの 要点は GCC の 使い方を 示すことなので まだ C の code の 説明は 行なわない。 GCCコンパイルする これが 最小の code だ。 それは なにも 実行しない。

Example 1-2. tuny.c

main()
{
}

この 1つの code を テキストエディタ上から タイプし tiny.c という ファイル名で 保存する。 その 終わりに ".c" を 付けることで どんなに 長い 名前でも 選ぶことが できる。 これは C で 使われる 拡張子 extension であり プログラムを コンパイルする時に GCC が 拡張子を チェックする。 ファイルが 保存されれば 次は タイプすることで 実行プログラムへと コンパイルが できる。

ciaran@poor:/~book$ gcc tiny.c
ciaran@poor:/~book$

この コマンドは 成功しても 出力を 返さないはずだ。 もし なにか エラーメッセージが でたなら タイプした プログラムに まちがいは ないかを 調べる。 8個の 単語について チェックし それが おそらく 正確に できたと 仮定して 次に 進もう。 "a.out" という ファイルが ディレクトリ内に できたはずだ。 それは 上記の code から つくられた 機械語の プログラムであり それを 動かしても 実際には なにも 実行しないことが わかるだろう。 "a.out" という 名前は 歴史的な 理由に よっており assembler の 出力にしては そっけない。

この code は GCCコンパイルするとしても 厳密には 完全ではない。 GCC では 警告することで なにが 欠けているかを 知らせるように できる。 今のところ 警告の メッセージを 理解するのは 期待できないので ここでは ただ GCC の 警告が 実行されることを 示そう。 コンパイルの時の コマンドを 変更し "-Wall" を 加えることで 警告が されるようになる。

ciaran@poor:/~book$ gcc -Wall tiny.c
tiny.c:2: warning: return type defaults to 'int'
tiny.c: In function 'main':
tiny.c:3: warning: control reaches end of non-void function
ciaran@poor:/~book$

こうした 警告は プログラムが 完全には 正確でない 理由を 表示する。 これらの 警告を とり除くには あと2つ line を 加えないと ならない。 これが 最小で 有効な プログラムだ。

Example 1-3. tiny2.c

int
main()
{
return 0;
}

"-Wall" オプションで これを コンパイルしても 応答は されないだろう。 ("a.out" の かわりに) プログラムに 与えようと 思う 名前を 指定するには "-o filename" という 別の オプションを 使うことで 可能だ。

ciaran@poor:/~book$ gcc -Wall -o tiny-program tiny2.c
ciaran@poor:/~book$ ls
tiny2.c tiny-program
ciaran@poor:/~book$ ./tiny-program
ciaran@poor:/~book$