Cのソースのコンパイル法

コンピュータに何か仕事をさせたい場合、仕事の作業内容をファイルとして保 存しておきます。このとき、コンピュータは人間の言葉を理解できず、逆に人 間はコンピュータの理解できる言葉(機械語という)を理解できません。そこ で、人間が理解できる言葉で記述したファイル(プログラムの「ソースファイ ル」と呼ぶ)を、コンピュータが理解できる形式のファイル(プログラムの 「実行ファイル」とよぶ)に変換する作業が必要となります。この作業を、プ ログラムの「コンパイル」とよび、これに用いるソフトウエアを「コンパイ ラー」と呼びます。

ここでは、「C言語」と呼ばれる約束でかかれたソースを実行ファイルに変換す る作業について簡単に示します。

1. プログラム作成用ディレクトリの作成

コンピュータにやらせたい、ある作業に関連するファイルがいろいろな場所に 散乱しないよう、この作業用のディレクトリを作成する。

$ cd <---- ホームディレクトリに移動
$ mkdir work1 <---- "work1"というディレクトリを作成
$ cd work1 <---- "work1"に移動

2. ソースファイル作成

「サクラエディタ」「メモ帳」「ワードバッド」などで、ソースファイルを作 成する。作成したファイルは''work1''ディレクトリに保存すること。また、ファ イルは「標準テキスト」のフォーマットで作成し(「リッチテキスト」にしな いこと)、日本語エンコーディングは「Unicode (UTF-8)」にすること。ファイ ル名は日本語を用いずにアルファベットのみにしておくほうが便利である。ま た、C言語のソースファイルとして、拡張子は「.c」を用いる。例えば、 「ex-1.c」など。

3. ソースが存在するか確認

ソースがちゃんとカレントディレクトリ(work1)に存在するか確認。

$ pwd

カレントディレクトリ(今居るディレクトリ)が、「work1」であるか確認。 「work1」に居ることが確認されたら、このディレクトリにどんな名前のファ イルがあるかを確認。

$ ls

これで、「ex-1.c」が表示されたファイル名の中にあればOK。

4. ファイル内容の確認

「ex-1.c」が、テキストエディットで作成した内容と同じであるか確認。

$ more ex-1.c

ファイル内容が前の方から一画面ずつ表示される。次の画面には「スペース」 キーで、前の画面には「b」キーで移動できる。終りまで来ると、「more」は 勝手に終了する。

もちろん「less」をもちいてもよい。

$ less ex-1.c

「less」は終りまで来ても勝手に終了しない。「q」キーを入力すると終了す る。

5. ソースのコンパイル

ソースをコンパイルする。

$ cc ex-1.c

ウオーニングが出るかも知れないが、エラー「error」の文字が含まれていな ければコンパイルに成功している場合もあるので心配しない。

ex-1.c: In function `main':
ex-1.c:4: warning: return type of 'main' is not `int'

上記の様なメッセージだけであればコンパイルに成功している。

6. コンピュータが理解できるファイルができているか確認

$ ls -l

上記で、「a.exe」ができているか確認。このとき、以前から「a.exe」が存在 していた場合、コンパイルに失敗しても「a.exe」があるため成功と誤認する場 合がある。このため、ファイルの日時をみて、「a.exe」が「ex-1.c」よりも新 しいことを確認する。

7. プログラムを動かしてみる

$ ./a.exe

注)

5. で示したように特にオプションなしでコンパイルした場合、 バイナリのファイル名はデフォルトの名前「a.exe」になる。デフォルトの名 前でなく別の名前をつけたい場合には

$ cc -o ex1program ex-1.c

と「-o」オプションで名前を指定すれば「a.exe」の代りに指定した名前(例で は「ex1program.exe」)が用いられる。この場合、5. 以下では「a.exe」を 「ex1program.exe」に読み替えるべし。