17.4. GCC および ar での静的ライブラリーの作成
オブジェクトファイルを特別なアーカイブファイルに変換して、静的にリンクするライブラリーを作成できます。
Red Hat は、セキュリティー上の理由から、静的リンクの使用は推奨していません。静的リンクは、特に Red Hat が提供するライブラリーに対して、必要な場合にのみ使用してください。「静的リンクおよび動的リンク」 を参照してください。
前提条件
- GCC と binutils がシステムにインストールされていること
- 静的リンクおよび動的リンクについて理解していること
- 関数を含むソースファイルをライブラリーとして共有していること
手順
GCC で仲介となるオブジェクトファイルを作成します。
$ gcc -c source_file.c ...
必要に応じて、さらにソースファイルを追加します。作成されるオブジェクトファイルはファイル名を共有しますが、拡張子は
.o
を使用します。binutils
パッケージのar
ツールを使用して、オブジェクトファイルを静的ライブラリー (アーカイブ) に変換します。$ ar rcs libfoo.a source_file.o ...
libfoo.a
ファイルが作成されます。nm
コマンドを使用して、作成されたアーカイブを検証します。$ nm libfoo.a
- 静的ライブラリーファイルを適切なディレクトリーにコピーします。
ライブラリーにリンクする場合、GCC は自動的に
.a
のファイル名の拡張子 (ライブラリーが静的リンクのアーカイブであること) を認識します。$ gcc ... -lfoo ...
関連資料
ar
ツールの Linux man ページ:$ man ar