Menu Close
2.4.3. GCC での動的ライブラリーの作成
動的にリンクされたライブラリー (共有オブジェクト) は、以下を可能にします。
- コード再利用によるリソース予約
- ライブラリーコードの更新を容易にすることで、セキュリティーが強化されます。
以下の手順に従って、ソースから動的ライブラリーを構築してインストールします。
前提条件
- soname メカニズムを理解している。
- GCC がシステムにインストールされている。
- ライブラリーのソースコードがある。
手順
- ライブラリーソースのディレクトリーに移動します。
位置独立コードオプション
-fPIC
でオブジェクトファイルに各ソースファイルをコンパイルします。$ gcc ... -c -fPIC some_file.c ...
オブジェクトファイルは、オリジナルのソースコードファイルと同じファイル名ですが、拡張子が
.o
となります。オブジェクトファイルから共有ライブラリーをリンクします。
$ gcc -shared -o libfoo.so.x.y -Wl,-soname,libfoo.so.x some_file.o ...
使用するメジャーバージョン番号は X で、マイナーバージョン番号は Y です。
libfoo.so.x.y
ファイルを、システムの動的リンカーが検索できる適切な場所にコピーします。Red Hat Enterprise Linux では、ライブラリーのディレクトリーは/usr/lib64
となります。# cp libfoo.so.x.y /usr/lib64
このディレクトリーにあるファイルを操作するには、root パーミッションが必要な点に注意してください。
soname メカニズムのシンボリックリンク構造を作成します。
# ln -s libfoo.so.x.y libfoo.so.x # ln -s libfoo.so.x libfoo.so
関連情報
- Linux ドキュメントプロジェクト - Program Library HOWTO - 3.共有ライブラリ