ソースファイルのコンパイル
プログラムが入力できたら、作成したhello.cをgccコマンドを使ってコンパイルします。
次の図2.2の実行例のように「gcc hello.c」というコマンドラインを入力し、[Enter]キーを押せばコンパイルが開始されます。
コンパイルが正常に行われると、次の行にシェルのプロンプト$が表示されます。このプロンプトが確認できればコンパイルは正常に行われています。
コンパイル時にエラーが発生した場合ば、次の図2.3の実行例のように、プロンプトが表示される前に何らかのエラーメッセージが表示されます。
このような場合は、再度hello.cをテキストエディタで開き、プログラムの入力ミスを修正してファイルを保存し、もう一度gccでコンパイルしてください。
ちなみに図2.3のエラーメッセージは、hello.cの6行目のprintf()内の、ダブルクォート"が閉じられていないために発生しています。
正常にコンパイルが行なわれると、hello.cと同じディレクトリにa.out[1]という実行バイナリファイルが作成されます。lsコマンドを使って、a.outファイルが作成されていることを確認してください。
プログラムの実行
このa.outを図2.5の実行例のようにして実行し、"Hello World"というメッセージが画面に表示されることを確認してください。a.outの実行時には、頭に「./」を付けてキー入力する必要があります。
ここまでできたら、hello.cの中の"Hello World\n"
の文字列を好きな他のメッセージに変更し、再度gccでコンパイルし、a.outを実行してここまでの手順を再確認してください。
a.outやPATHについて
gccでコンパイルを行うと、a.outというファイル名の実行バイナリファイルがカレントディレクトリ(現在自分がいるディレクトリ)に作成されました。しかし、ここで単純にa.outとコマンド入力してもa.outを実行することはできません。
UNIX(Linux)は、DOS(Windowsのコマンドプロンプト)とは違い、カレントディレクトリにはPATHが通っていないのが普通です。したがって、a.outを実行するには、カレントディレクトリ上にあるファイルであることを明示するため、頭に./を付けて./a.outとコマンド入力する必要があるのです。
.はカレントディレクトリを表す記号、/はディレクトリの区切りを表す記号です。a.outのように、一般ユーザが自分で作成した実行バイナリファイルを./を付けずにそのまま実行したい場合は、実行バイナリファイルを自分のホームディレクトリの下のbinディレクトリ($HOME/bin)に配置し、$HOME/binをPATHに追加して使うようにします。
このほかに、PATHに.を含めるように設定変更してしまうという方法もありますが、そのような設定はセキュリティ上推奨されないため行わないでください。