15.1.2 分割コンパイル

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

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

    % cc  -c   test.c
    ...
    % cc  -c   test2.c
    ...

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

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

    % cc  test.o  test2.o

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

    % cc  -o test  test.o  test2.o



最初のページ 戻る 次へ 最後のページ 目次
Hiroyasu Asami