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

libstdc++:



Ho dei strani problemi (almeno io non li capisco!) con le librerie del C++
relative ad un programma (un simulatore di robot). Non ho piu' le idee molto
chiare a questo punto. Qualcuno sa "illuminarmi" o darmi qualche suggerimento?

Gli errori che ricevo sono del tipo:
libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or
directory

E in effetti io ho (ldconfig -v) una:
libstdc++-libc6.0-1.so.2 => libstdc++-2-libc6.0-1-2.9.0.so
solo non capisco perche' richieda la libc6.1-1, dato che la documentazione del
prg dice che il prg funziona per RH 6.0 e Debian 2.1!

(una domanda per inciso: la Debian 2.1 [la mia distrib.] ha solo la libc6.0-1?
Io non ho trovato altro nei miei 2 Cd, ma mi viene qualche dubbio!).

Come se non bastasse, a complicarmi la "visione" del problema, c'e' che se
compilo alcuni programmi a manina (make, con Makefile fornito dal package),
quello che ottengo e' una sfilza di errori del tipo:
.../libController.so: undefined reference to `fopen@@GLIBC_2.1'
.../libController.so: undefined reference to `sprintf@@GLIBC_2.0'
.../libController.so: undefined reference to `shmat@@GLIBC_2.0'
ed altri ancora; come si vede, alcuni errori fanno riferimento alla glibc_2.1 e
altri alla 2.0. In particolare quelli relativi a comandi [p,f]close / [p,f]open
sono relativi alla 2.1... Se pero' eseguo:
ldd libController.so 
        libc.so.6 => /lib/libc.so.6 (0x4003d000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
Quindi nessuna dipendenza mancante!
Ma non basta, perche' se eseguo il comando make su una distro RH 6.2, o
Mandrake 7.1 o altre... la compilazione termina correttamente. C'e' bisogno
della Debian 2.2? Non sembrerebbe pero', dato che ogni programma che ho provato
con "ldd" sembra non richiedere nuove glibc!
Infine, un programma che quando ricompilato non vuole saperne, mi da':
<< cc -o finder finder.o -L/home/angus/ig/webots/lib -l.... -L/usr/X11R6/lib
-lX11 -lpng -lm -lz -lstdc++ 
ld: cannot open -lstdc++: No such file or directory >>

Cioe' non troverrebbe la stdc++, che e' installata (vedi ldconfig -v...):
libstdc++.so.2.9 => libstdc++.so.2.9
libstdc++-libc6.0-1.so.2 => libstdc++-2-libc6.0-1-2.9.0.so

E naturalmente se eseguo:
ldd finder
        libController.so => libController.so (0x4000f000)
	....
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40059000)
	...
        libstdc++-libc6.1-1.so.2 => not found <########### NOTA quella di
prima!
        libc.so.6 => /lib/libc.so.6 (0x40150000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


Mah!
Grazie a tutti quelli che si sono letti questo papiro e che sapranno (spero)
capirci qualcosa :))

Bye,

-- 
---------------------------------------------------------------------------
Peace cannot be kept by force. It can only be achieved by understanding.
      Albert Einstein 
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Marco Mililotti
email: mililmar@lucy.dii.unisi.it
web  : http://www.dadacasa.com/yah/
----------------------------------------------------------------------------




Reply to: