それでは、実際に、プログラムを作成して、実行させて見ましょう。初心者が
最初に作るものとして、最も有名な'Hello World'というプログラムを作りま
す。
- ターミナルの起動
- ターミナル(端末)のアイコンをクリックして、ターミナルを立ち上げる。
- 作業ディレクトリーの作成と移動
- 「mkdir hello」とタイプして、作業用ディレクトリーhello
を作る。
- 作業用ディレクトリーができているか、「ls」コマンドで確認し
ます。すると「hello」が表示される。
- 「cd hello」とタイプして、作業用ディレクトリーに移動する。
- 「pwd」コマンドで、作業用ディレクトリーに移れたことを確認する。
- エディターの起動
- 「emacs hello_world.c&」とタイプする。
- すると、プログラムのソースを書くウインドウが現れる。
- プログラムの記述
- プログラムの保管
- プログラムを書き終わったならば、[file]メニューの[Save(current
buffer)] を選択する。あるいは、フロッピーディスクアイコンをクリック
して、ソースファイルを保管する。
- ターミナル上で「ls」コマンドを打ち、ソースファイルが保管さ
れていることを確認する。
- コンパイル
- ターミナル上で「gcc -o aisatsu hello_world.c」と打ち込み、
先ほど作成したソースファイルをコンパイルする。
- もし、コンパイルエラーが発生したら、ソースファイルを修正
する。
- 実行ファイルができているか、「ls」コマンドで確認する。
- 実行
- ターミナル上で「./aisatsu」と打ち込み、プログラムを実行させま
す。
- 'Hello World'と表示されれば、プログラムは動作は完璧です。
以上のプログラム作成の手順をまとめると、図1のようなフロー
チャートになる。
プログラムを作成する場合、コンパイル
2(
gccコマンド)という不思議なステップがある。このステップについ
て簡単に説明しておく。
一般に、コンパイルというと、ソースファイル(ここではC言語)から実行ファイルを作る動作の
ことを指す。ターミナル上で、
gcc -o 実行ファイル名 ソースファイル名
とタイプすれば、ソースファイルから実行ファイルができあがる。エラーが無ければちゃんと
実行可能なファイルが作成され、「
./実行ファイル名」とタイプすればプログラム
ムが実行できる。
さて、この動作がなぜ必要なのであろうか?。諸君が学習しているC言語のソースファイル
の内容は人間が理解できるが、それはコンピューターは理解できない。そのため、人間が
理解できる言葉からコンピューターが理解可能な言葉に翻訳が必要で、コンパイルとはそ
のために必要なのである。要するに、プログラミング言語を機械語に翻訳しているのである。
以上の説明で大体良いが、正確には、機械語に翻訳するためには、コンパイルとリンクと
言う作業が必要である。それらの作業は、コンパイラーとリンカーが受け持っており、コ
マンド「gcc」の作業は、図2のようになっている。通常、
コンパイルと言っているが、実際にはコンパイルとリンクを行っている。
余談ではあるが、オプションの「-o」を付けない、すなわち実行ファイル名無しで
「gcc」を動作させた場合、「a.out」という実行ファイルができあがる。こ
の a は、assembler out の略らしいが、実際には linker out である。
ホームページ:
Yamamoto's laboratory著者:
山本昌志
yamamoto masashi
平成17年5月14日