【C言語】コンパイルとリンクとビルドの話

昔、仕事現場で、

「リンクって何ですか?」

って聞いてきた若者がいたので、

ここできちんと説明した方が良いのかなと。

まず、コンピュータに命令を出すには、0と1で記述された「機械語」で命令を出さなければなりません。

機械語でなければコンピュータは理解できないのです。

なので、記述したソースコードを実行するには、ソースコードを機械語に変換する必要があります。

ソースコードを機械語に変換する処理を「コンパイル」といいます。

C言語の場合、ソースファイル毎にコンパイルを行い、オブジェクトファイルという形で機械語に変換します。

しかし、このままでは機械語の命令がソースファイル毎に分断されている状態なので、このままでもコンピューターに実行させることはできません。

そこで、実行に必要なファイルを1つに結合する「リンク」という作業が必要になります。

C言語の場合、ソースファイル毎に変換されたオブジェクトファイルと実行に必要なライブラリファイルを1つにまとめて実行形式のファイルに結合します。

一般的に「ビルド」と呼んでいるのは、この「コンパイル」と「リンク」を一括して行う作業をいいます。

次回は変数について説明しようと思います。