Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

17.3. GCC での動的ライブラリーの作成

動的にリンクされたライブラリー (共有オブジェクト) を使用すると、コードを再利用してリソースを確保でき、またライブラリーコードの更新が簡単になることからセキュリティーの強化を図ることができます。このセクションでは、ソースから動的ライブラリーを構築し、インストールする手順を説明します。

前提条件

手順

  1. ライブラリーソースのディレクトリーに移動します。
  2. 位置独立コードオプション -fPIC でオブジェクトファイルに各ソースファイルをコンパイルします。

    $ gcc ... -c -fPIC some_file.c ...

    オブジェクトファイルは元のソースコードファイルと同じファイル名を持ちますが、拡張子は .o となります。

  3. オブジェクトファイルから共有ライブラリーをリンクします。

    $ gcc -shared -o libfoo.so.x.y -Wl,-soname,libfoo.so.x some_file.o ...

    使用するメジャーバージョン番号は X で、マイナーバージョン番号は Y です。

  4. libfoo.so.x.y ファイルを、システムの動的リンカーが検索できる適切な場所にコピーします。Red Hat Enterprise Linux では、ライブラリーのディレクトリーは /usr/lib64 となります。

    # cp libfoo.so.x.y /usr/lib64

    このディレクトリー内のファイルを操作するには、root パーミッションが必要な点に注意してください。

  5. soname メカニズムのシンボリックリンク構造を作成します。

    # ln -s libfoo.so.x.y libfoo.so.x
    # ln -s libfoo.so.x libfoo.so

関連資料

  • Linux ドキュメントプロジェクト: Program Library HOWTO の 3.Shared Libraries