[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:19422] Re: S.O.Slibpng.so2を削除してしまった



From: Shun-ichi TAHARA (田原 俊一) <jado@flowernet.gr.jp>
Subject: [plamo:19420] Re: S.O.S libpng.so2を削除してしまった
Date: Wed, 25 Jun 2003 00:45:35 +0900 (JST)

> > という風になっていて,libpng の実体は libpng.so.2.1.0.6 であり,それに
> > 対して libpng.so.2 と libpng.so というリンクを張って,libpng のバージョ
> > ン 2 の機能を明示的に必要とするコマンド(プログラム)は libpng.so.2 を,
> > libpng ならバージョンを気にしなくてもいいコマンド(プログラム)は 
> > libpng.so を,それぞれ参照すればいいようになっています.
> 
> libpng.so は、リンク時に参照されて(このため、普通は複数のメジャーバー
> ジョンを持つライブラリがあったら、最新のものにリンクされる)、できあがっ
> たバイナリには libpng.so.2 のライブラリ名が埋め込まれ、実行時には
> libpng.so.2 のリンク先である libpng.so.2.1.0.6 が動的リンクされる、と
> 理解していたのですが、どんなもんなのでしょう?

へい,その理解が正しいですね (_ _)

ちなみに,実際にどういうライブラリが必要であるかを調べるためのコマンド
が ldd で,

kojima@athlon[~/Src/siv-1.5.6]% ldd /usr/bin/siv
        libgdk_pixbuf.so.2 => /usr/lib/libgdk_pixbuf.so.2 (0x4001d000)
        libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x40030000)
        libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x40156000)
        libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x4018a000)
        libdl.so.2 => /lib/libdl.so.2 (0x4018e000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40191000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40199000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x401a7000)
        libm.so.6 => /lib/libm.so.6 (0x40281000)
        libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x402a2000)
        libc.so.6 => /lib/libc.so.6 (0x402c6000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

という風にコマンド(この例では siv)が必要としている(埋め込まれている)ラ
イブラリ名と,そのライブラリが実際にどこにあるかが表示されます.

# 0x40XXXX みたいな数字がそのライブラリがロードされるアドレスで,この
# ヘンの処理が a.out と ELF で違っていたはず.

これで "not found" とか表示されるものがあれば,そのコマンドを動かすた
めに必要なライブラリが欠けているということになります.

> # それゆえ、ldconfig は libpng.so.2 の symlink は作るけど libpng.so は
> # 手で張らないといけない
> 
> このへんの挙動は Linux 特有(というか、OS によってマチマチ)みたいですけ
> どね。

そー言えば,最近は libXXX.la というのがありますよね?

ちゃんと調べたことないんだけど,あれって GNU の linker なり loader な
りが,より効率的に必要なライブラリを探すための仕組みかしらん?

# GNU libtool あたりを調べればいいのかな?

-------
こじま

References
[plamo:19413] Re: S.O.S libpng.so2を削除してしまった, hayasi
[plamo:19416] Re: S.O.Slibpng.so2を削除してしまった, KOJIMA
[plamo:19420] Re: S.O.Slibpng.so2を削除してしまった, Shun-ichi TAHARA (田原 俊一)

[検索ページ] [メール一覧]
Plamo ML 公開システム