ldconfig, ldd a LD_LIBRARY_PATH
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Pondělí Prosinec 11 15:59:38 CET 2006
On Mon, 11 Dec 2006, Hana Skoumalova wrote:
> photov: symbol lookup error: photov: undefined symbol: initPAnsiStrings
> která se objevila proto, že nenašel tu kylixovou knihovnu
> libborqt-6.9.0-qt2.3.so. Přitom:
Tohle není normální hláška, co se objevuje, když dynamic linker nenajde
dynamickou knihovnu...
> - ldconfig o té knihovně ví (podívala jsem se do ld.so.cache).
> - Když si pustím strace, vidím, že si program photov otevřel soubor
> /etc/ld.so.conf, ale pak tu knihovnu hledá všude možně, jenom ne v těch
> adresářích, které jsou tam uvedené.
ld.so.conf? Hm? To je konfigurák ldconfig, dynamic linker ho vůbec
nepoužívá.
> - ldd se vůbec o knihovně libborqt-6.9.0-qt2.3.so nezmiňuje.
Opravdu ho nevypisuje ldd? To by ale znamenalo, že tu knihovnu načítá
někdo ručně až ex post. A možná je ten někdo až moc iniciativní (a prase),
snaží se implementovat hledání knihovny ve své režii a dlopen() dát už
hotovou absolutní cestu a nějak to nezvládá dělat správně.
Načítání knihovny přes dlopen() by zároveň vysvětlovalo, proč její
samotné nenalezení nebyla fatální chyba a proč to umřelo až při pokusu
vlézt na neresolvovaný symbol.
--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