next up previous contents
Next: 2. スコープ Up: 1. モジュール Previous: 1. プリプロセッサ

2. 分割コンパイル

モジュール別にプログラムを書き、それらのモジュール間で関数宣言や 構造体の定義などを共有する方法について理解した訳であるが、実際には 最終的にそれらを一つの実行ファイルとしなければならない。このために は、明示的にコンパイルとリンクを別個に実行しなければならない。

今、2つのモジュール test.c と elist.c があったとする(ファイルとしては もう一つ elist.h もありますが)。これらのモジュールを機械語への翻訳のみ 行い、リンクは行わないようにするには次のように実行する。


    % cc  -c   test.c
    ...
    % cc  -c   elist.c
    ...

これによって、コンパイラは機械語に翻訳された test.o と elist.o を作成 する(オブジェクトファイルの拡張子は標準では .o となる)。

次に、コンパイルに成功していたならば、これらのオブジェクトおよび標準 ライブラリとのリンクを行う。


    % cc  test.o  elist.o

これによって、実行可能ファイル a.out が生成される。これまでに学んだように 実行ファイルに a.out 以外の名前をつけたい場合には以下のように -o オプションを用いる。


    % cc  -o test  test.o  elist.o



Noriyo Kanayama 平成14年11月26日