12.2 分割コンパイルとmake
1.独立コンパイルと分割コンパイル
2.独立コンパイルと分割コンパイルの違い
- 独立コンパイル:ファイルに分けることが可能で、個々にオブジェクトを作って、後で纏めてロードモジュールを作成可能である
- 分割コンパイル:独立コンパイルに加えて、ソースとオブジェクトの時間的関係
(どのソースが新しいか、など)に基づいて、必要な言語処理をその言語の基本機能として行う
故に、makeと外部機能に委ねないといけないというのは、分割コンパイル可能とはいえず、独立コンパイル可能ということになります。
ただ、UNIX系(の一部)を除いては、現在言語(処理系)と統合的言語観環境(Windows上のVisual-C++等)の境界が明確でなく、例えばVC++は言語処理系であり、しかも環境です。
よってVC++は分割コンパイル可能なシステムである、といえます。同じく java自体は独立コンパイル可能なだけですが、javaworkshopは分割コンパイル可能なシステムでありましょう。
では、「言語処理系」+makeの組み合わせをもってして、分割コンパイル可能なシステムといえるのでしょうか?
厳密にはいえません。なぜかというと、これに必要な依存関係は、ユーザが与えないといけないからです。