Re: Wie die Lib zu undefinierten Symbolen finden?

Thomas Michalka <[email protected]> Tue, 10 Jan 2012 12:51:10 +0100
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Hallo,


Philipp Thomas schrieb:
> On Mon, 09 Jan 2012 15:17:58 +0100, Thomas Michalka
> <[email protected]> wrote:
>=20
>> [...]
>=20
> Wenn ein Programm normal dynamisch gelinkt wird, wird im Programm
> festgehalten, welche Bibliotheken ben=C3=B6tigt werden (DTNEEDED Eintr=C3=
=A4ge
> im ELF-Header, die man sich mit "objdump -p <programm>" anzeigen

$> objdump <programm>
...
Dynamic Section:
  NEEDED               libX11.so.6
  NEEDED               libpthread.so.0
  NEEDED               libdl.so.2
  NEEDED               libc.so.6
...

Das sind alle NEEDED-Eintr=C3=A4ge.

Wie ich in meiner anderen Mail, auf die Du geantwortet hast, schon
schrieb, ergibt ldd -r <programm> u.a. initPAnsiStrings als
undefiniertes Symbol. Frage dazu:
Warum ist dann die Lib, in der das Symbol definiert ist, nicht unter den
NEEDED-Eintr=C3=A4ge des Programms aufgelistet?

> lassen kann). Dann kann man die aufgef=C3=BChrten Bibliotheken =C3=BCbe=
rpr=C3=BCfen,
> aber das erledigt auch schon ldd.=20

Richtig. Hier habe ich aber auch keinen Hinweis auf die
libborqt-6.9-qt2.3.so; wieso nicht, wenn das undefinierte Symbol darin
definiert ist?

=C3=BCbrigens ist das neben einem Symlink die einzige Datei in dem RPM-Pa=
ket
gewesen, das ich installiert habe. Ich h=C3=A4tte sie wohl auch aus einem
*.tar.gz holen und manuell nach /usr/lib kopieren k=C3=B6nnen. Ich wollte
u.a. sehen, ob initPAnsiStrings darin enthalten ist.

Zus=C3=A4tzlich frage ich, ob es gen=C3=BCgt, die Lib an die richtige Ste=
lle zu
kopieren, damit der Dynamic Linker/Loader (/lib/ld-linux.so.2) diese Lib
beim Programmstart laden kann. Kannst Du dazu was sagen?


Gru=C3=9F, Tom
--=20
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]