Jak v aplikaci zmenit "odkaz" na sdilenou knihovnu

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pondělí Září 15 21:31:41 CEST 2003


On Mon, 15 Sep 2003, Zdeněk Böhm wrote:

> Utility prekladam na nainstalovanem systemu, ktery pouziva Glibc, takze
> soubory uClibc mam nainstalovane v jinem adresari, nez /lib. Do /lib je dat
> nemuzu, protoze bych prepsal soubory patrici ke Glibc (maji stejne nazvy) a
> tim bych si, predpokladam, sejmul bezici system. Kdyz se na prelozene
> binarky utilit mrknu pomoci ldd, tak mi vypise (zcela spravne) cestu ke
> sdilenym knihovnam prave v tom alternativnim adresari. Ovsem ja ty prelozene
> utility chci pouzit na jinem systemu, kde uz uClibc knihovny budou v /lib
> (protoze tam macek Glibc nebude).

No to je prave ta chyba. Ty binarky musite zkompilovat resp. slinkovat
tak, aby v nich nebyla nadratovana cesta k dynamickym knihovnam. Jak to
vubec linkujete? Trik je v tom, ze muzete pouzit -L resp. -rpath-link,
ale nesmite pouzit -R resp. -rpath.

Jinak z existujici binarky by to urcite take slo odstranit, ale bud byste
musel byste si dat praci s tim, ze rozeberete na soucastky sekci .dynamic,
vyhodite polozku s DT_RPATH (15) a zase to date dohromady.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux