Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Probleme mit dem Ausführen von Programmen

3 views
Skip to first unread message

Karl Pech

unread,
Mar 21, 2004, 1:23:26 PM3/21/04
to
Hallo,

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

Adrian Knoth

unread,
Mar 21, 2004, 1:36:30 PM3/21/04
to
Karl Pech <Karl...@users.sf.net> wrote:

> 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)

Karl Pech

unread,
Mar 21, 2004, 2:11:54 PM3/21/04
to
"Adrian Knoth" <a...@thur.de> schrieb im Newsbeitrag
news:slrnc5ro5...@ppc201.mipool.uni-jena.de...

> > #include <iostream.h>
> >
> > int main(int argc, char* argv[])
> > {
> > cout << "test";
> > }
>
> Hast du das neuerdings kompiliert oder ist das ein altes Executable?

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

Joerg Scheurich aka MUFTI

unread,
Apr 2, 2004, 3:35:50 AM4/2/04
to

>> > libstdc++.so.2.10.0 => (file not found)

>> 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)

Juergen P. Meier

unread,
Apr 2, 2004, 6:32:54 AM4/2/04
to
begin 1 followup to Joerg Scheurich aka MUFTI:

>
>>> > libstdc++.so.2.10.0 => (file not found)
>
>> OSTYPE=solaris

>
> 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.

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)

0 new messages