第45回
複数のソースファイルからプログラムを作る~マルチモジュール開発の基本

プログラムの生成

複数のソースファイルから1つの実行形式ファイルを生成するには、コンパイル時に必要なソースファイルをまとめて指定します。

ソースをフォルダにまとめる

1つのプログラムを生成するために複数のソースファイルを用いる場合、それらを1つのフォルダにまとめて保存します。フォルダ名はプログラム名とするのが一般的です。

コンパイラを起動する前に、そのフォルダをカレントにしておけば、ソースファイルの指定にフルパスを記述する必要がなくなり、コマンドラインがすっきりします。

というより、コマンドラインからコンパイラを起動する場合、ソースファイルを逐一フルパスで指定するとコマンドラインが長くなり過ぎ、シェルプログラムがコンパイラを正常に起動できなくなる場合もあります。

コンパイル方法

コンパイルでは、コンパイラドライバで使用するすべての .cソースファイルを列挙して指定します。LSI-Cの場合なら、以下のようになります。
LCC -j -o stconv.EXE stconv.c datinit.c convert.c > stconv.ERR
            (a)                   (b)                  (c)

(a) -oオプションで、生成する実行形式ファイル
(b) コンパイル対象の複数の .cソースファイル
(c) エラーメッセージを保存するファイル

UNIX系OSのGCCでも、同じ要領で複数のソースファイルをまとめて指定できます。


マルチモジュール開発の基本であるソース分割の考え方とその実例を紹介してきました。しかし、今回紹介したコンパイル方法では、ほんの一部を修正しただけでも複数のソースすべてをコンパイルし直さなければならず、大規模なプログラムでは非常に手間がかかってしまいます。

この手間を大幅に軽減するのがmakeです。プログラムの生成規則をあらかじめ記述しておくだけで、無駄なコンパイルの時間と手間を効率化できるプログラムです。次回は、このmakeの扱いを紹介します。