うーん。苦手な問題が続き、だんだん飽きてきます。
これはどうやらLinuxプログラミングとも関連が深いようだけど、ミドルウェア系ばっかりいじっている私にはあまり馴染みがない。
【共有ライブラリとは】
- プログラムの実行時に動的にロードされてリンクするライブラリ
- lddコマンドで実行ファイルが必要としている共有ライブラリを表示できる
実際にlddコマンドを使ってみます。
[root@centos ~]# ldd /bin/ls
linux-vdso.so.1 => (0x00007fff28637000) libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003a17000000) librt.so.1 => /lib64/librt.so.1 (0x0000003a16000000) libcap.so.2 => /lib64/libcap.so.2 (0x0000003a19400000) libacl.so.1 => /lib64/libacl.so.1 (0x0000003a20000000) libc.so.6 => /lib64/libc.so.6 (0x0000003a15400000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003a15800000) /lib64/ld-linux-x86-64.so.2 (0x0000003a15000000) libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003a15c00000) libattr.so.1 => /lib64/libattr.so.1 (0x0000003a25800000)
必要なライブラリが表示されました。
【共有ライブラリの設定変更】
- 共有ライブラリを必要とするプログラムが実行されると、/etc/ld.so.cacheファイルを参照して共有ライブラリが格納されているディレクトリのパスを取得する。
- /etc/ld.so.cacheファイルは、/etc/ld.so.confファイルをもとに作成される。
- /etc/ld.so.confファイルを編集した場合、ldconfigコマンドを実行し、反映させる必要がある。
- 共有ライブラリの検索パスを追加するには、環境変数のLD_LIBRARY_PATHへそのパスを追加する。
[ad#ad-1]
共有ライブラリ