2000.03.11 初版
ライブラリは、再利用を目的として作成されたコンパイル済みの関数の集合です。 linux以外のOS別 Shared Library の構築・使用ガイドは、 http://www.dais.is.tohoku.ac.jp/~kabe/vsd/dynald.htmlへどうぞ。 ライブラリの名前の先頭は、lib から始まります。Linux のライブラリには次の3種類あります。$ gcc -fPIC -c xxx.c $ gcc -shared -Wl,-soname,libxxx.so.1 -o libxxx.so.1.0 xxx.o # cp libxxx.so.1.0 /usr/lib # /sbin/ldconfig /usr/lib # ln -s /usr/lib/libxxx.so.1 /usr/lib/libxxx.soスタティックライブラリは、ar コマンドで作成します。ranlib コマンドは、 BSD系のUNIX で使われており、各ライブラリの先頭に __.SYMDEF というメンバを 追加します。これは、リンクを高速にするためです。 GNUツールを使うlinux では、不要ですがまあ実行してもいいようです。 strip コマンドは、オブジェクトファイルの中のsymbol table を削除します。 コマンドをインストールする場合には、 strip コマンドを実行します。
$ ar rv libxxx.a xxx.o $ ranlib libxxx.a $ strip libxxx.a
$ ldd bsendm libbsmtp.so.1 => /usr/lib/libbsmtp.so.1 (0x40016000) libstdc++-libc6.1-1.so.2 => /usr/lib/libstdc++-libc6.1-1.so.2 (0x4002e000) libm.so.6 => /lib/libm.so.6 (0x40070000) libc.so.6 => /lib/libc.so.6 (0x4008c000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)