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]