Im 'Betreff' ist schon alles gesagt.
Wenn ich beispielsweise ein Programm
starte, dessen Quellcode so aussieht:
#include <iostream.h>
int main(int argc, char* argv[])
{
cout << "test";
}
So kriege ich diese Meldung:
> ./test.it
ld.so.1: ./test.it: fatal: libstdc++.so.2.10.0: open failed: No such file or
directory
Killed
>
Ich hab' durch Google 'was über ldd rausgefunden. Und ldd
liefert folgendes (keine Ahnung, ob's 'was nützt):
> ldd test.it
libstdc++.so.2.10.0 => (file not found)
libm.so.1 => /usr/lib/libm.so.1
libc.so.1 => /usr/lib/libc.so.1
libdl.so.1 => /usr/lib/libdl.so.1
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
>
[Der ganze Ärger fing an als ich dummerweise mit rm -r .* alle
Einstellungen meines Home-Verzeichnises verloren habe.
Dabei wollte ich nur alte Dateien in meinem Home-Verzeichnis löschen. ]
Kann mir jemand helfen?
Vielen Dank!
Karl
> Im 'Betreff' ist schon alles gesagt.
Die Fehlermeldung sagt auch schon alles.
> #include <iostream.h>
>
> int main(int argc, char* argv[])
> {
> cout << "test";
> }
Hast du das neuerdings kompiliert oder ist das ein altes Executable?
>> ldd test.it
> libstdc++.so.2.10.0 => (file not found)
Nun, das ist offenkundig die Ursache. Du mußt die Datei auftreiben
und in ein zuständiges Library-Verzeichnis kopieren bzw. deinem
Loader sagen, wo er die Datei finden kann (unter Linux würdest du
das durch setzen von LD_LIBRARY_PATH machen, ich weiß aber nicht,
auf welcher Plattform du dich befindest)
--
mail: a...@thur.de http://adi.thur.de PGP: v2-key via keyserver
Acht Uhr? Morgens? Wach? Duschen? Das war kein Admin. (Jonas Luster in dasr)
Das habe ich neuerdings kompiliert.
(Nachdem die Einstellungen weg waren.)
> >> ldd test.it
> > libstdc++.so.2.10.0 => (file not found)
>
> Nun, das ist offenkundig die Ursache. Du mußt die Datei auftreiben
> und in ein zuständiges Library-Verzeichnis kopieren bzw. deinem
> Loader sagen, wo er die Datei finden kann (unter Linux würdest du
> das durch setzen von LD_LIBRARY_PATH machen, ich weiß aber nicht,
> auf welcher Plattform du dich befindest)
Ich hab' jetzt mal printenv eingegeben:
[..]
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin
SHELL=/bin/tcsh
TZ=MET
SSH_TTY=/dev/pts/6
TERM=xterm
HOSTTYPE=sun4
VENDOR=sun
OSTYPE=solaris
MACHTYPE=sparc
SHLVL=1
[..]
Danke für deine Hilfe!
Schöne Grüße
Karl
>> Loader sagen, wo er die Datei finden kann (unter Linux würdest du
>> das durch setzen von LD_LIBRARY_PATH machen, ich weiß aber nicht,
>> auf welcher Plattform du dich befindest)
> OSTYPE=solaris
Damit ist /opt/sfw/lib/ der Hauptverdaechtige.
Laut crle(1) muesste, es funktionieren, wenn man vor dem Start des
Binaries
LD_LIBRARY_PATH=/opt/sfw/lib/
export LD_LIBRARY_PATH
benutzt (falls die benutzte Shell sh-kompatibel ist).
In der Manpage von crle muesste auch stehen, wie man so einen Pfad
dauerhaft einrichtet.
so long
MUFTI
--
Wenn ich verdopple, klicken Sie im browser, Bilder werden in gesaust.
(aus einem Softwarehandbuch)
Hinweis: Falls es sich um ein Programm mit gesetzten SUID-Bit handelt,
reicht LD_LIBRARY_PATH genau dann nicht, wenn dieser Pfad nicht auch
in der Liste der "trusted" library-Pfade ist.
(-s option zu crle(1) und ld.so.1(1) )
Juergen
--
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)