泥縄式ccの使い方

Accesses: /*topボタン*/

UNIX環境ではCコンパイラは標準的についているものは cc(C Compiler)という名前です。 またGNUプロジェクトのCコンパイラはgccという名前で インストールされていることがあります。基本的な 使い方はccと同じですからccの部分をgccと読み替えてください。

cc ソースファイル名
cc foo.c

とするのが一番基本的な使い方です。例ではfoo.cを コンパイルして実行ファイルを生成します。実行ファイルは カレントディレクトリにa.outという名前で作られます。 ですが実行ファイルが必ずa.outという名前になってしまうのは 困りものですね。 作られる実行ファイル名を指定したい場合は-oオプションを 使います。

cc foo.c -o abc

とすると、生成される実行ファイル名はa. outではなくabcとなります。

C言語などの言語では、実行ファイルを作り出す過程で 中間オブジェクトファイル(.o)/*要説明*/を生成するのが一般的です。 オプションを指定しない場合はこの中間オブジェクトを 生成しないのですが、実際にはコンパイルとリンクの 2つの段階からccの動作が成りたっています。

コンパイルのみを行い、中間オブジェクトを生成するには -cオプションを使います。

cc -c foo.c

とすると中間オブジェクトファイルfoo.oが生成されます。 -oを指定しない場合はこのようにベース名.oという名前が つけられます。

中間オブジェクトをリンクし実行ファイルを生成するには オブジェクトファイルをccに与えます。

cc -o foo foo.o

とするとfoo.oをリンクして実行ファイルfooを作ります。

リンク

/*to be written */

ライブラリのリンク

数学関数などシステムに用意されている関数群は ライブラリと呼ばれ通常/usr/libにあります。 それぞれのライブラリはlibbar.aというようなファイルに なっていて、この.a形式は いくつかの中間オブジェクトを結合したものです。

これらのライブラリを利用するためには ccで-lオプションを使います。

上の例ではfoo.cで三角関数sin()を使っていたとします。 sin()を計算する関数はlibm.aに含まれています。 ですからリンク時に

cc -o foo foo.o -lm

というように-lm(-lとmの間は空けてはいけません)とlibm.a から先頭のlibと.aをとったものを指定します。

(例)
使いたいライブラリ オプション
/usr/lib/libncurses.a -lncurses
/usr/lib/libcrypt.a -lcrypt

Copyright(C)1996, Gaku UEDA(gaku@ueda.info.waseda.ac.jp)