PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : libstdc++.so.6 nachinstallieren?



autotest100
31.10.04, 13:18
Hallo,

ich versuche gerade Far Cry zu starten. Far Cry benötigt aber libstdc++.so.6, ich habe auf meiner Suse nur die Version 5.0.5. Per Online-Update habe ich keine neuere Version gefunden.

Wie kann ich eine neuere libstdc bekommen bzw. installieren?

System: Suse 9.0

Viele Grüsse

Stefan

Detrius
31.10.04, 19:47
http://gcc.gnu.org/libstdc++/

Die libstdc++ ist beim gcc mit dabei. Eine neuere Version bekommst Du also nur mit einem neuren gcc.

autotest100
01.11.04, 14:23
Hallo,

vielen Dank für deine Antwort. Ich ahbe das Problem inzwischen gelöst. Dh. ich habe einfach das folgende Paket installiert:

wget http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.0-i386/RPMS.suser-gbv/gcc_34-3.4.2-0.gbv.1.i586.rpm

rpm -Uvh gcc_34-3.4.2-0.gbv.1.i586.rpm

ln -s /opt/gcc_34/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6

Und Far Cry läuft! ;)

Viele Grüsse

Stefan

cwernecke
11.11.05, 13:51
System: SuSE 9.3/64 Bit

Ich habe das Paket gcc_34-3.4.4-0.gbv.1.i586.rpm mir RPM installiert.

Wenn ich

ln -s /opt/gcc_34/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6

eingebe erhalte ich die Meldung

ln: creating symbolic link `/usr/lib/libstdc++.so.6' to `/opt/gcc_34/lib/libstdc++.so.6': File exists

Diese Datei scheint es also zu geben, allein ich bekomme die Software (BF2-Server) nicht gestartet, sie sagt immer

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

Ich habe das Paket als root installiert. Die Software starte ich als User im User-Homeverzeichnis.

Was mache ich da möglicherweise noch falsch?

traffic
11.11.05, 14:37
Du verwendest ein Paket, das schlicht und einfach falsch für Dein System ist. Dein System ist x86_64, also brauchst Du auch ein x86_64-Paket.

Nimm dieses RPM:

http://rpm.pbone.net/index.php3/stat/4/idpl/1873598/com/libstdc++34-3.4.3_16-0.1.x86_64.rpm.html

Den Symlink musst Du mit diesem Paket übrigens _nicht_ von Hand setzen.

cwernecke
11.11.05, 20:07
Vielen Dank. Ich habe das Paket heruntergeladen. Anschließende mit

rpm -Uvh libstdc++34-3.4.3_16-0.1.x86_64.rpm

installiert. Es kam die Meldung:

Preparing... ########################################### [100%]
package libstdc++34-3.4.3_16-0.1 is already installed

Danach kam beim Start des Game-Servers weiterhin die Meldung

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

Die gesuchte Datei befindet sich als Link im Verzeichnis /usr/lib

linux:/usr/lib # ls -l libstdc++.so.6
lrwxrwxrwx 1 root root 18 Nov 10 19:08 libstdc++.so.6 -> libstdc++.so.6.0.3

bzw.

linux:/usr/lib # ls -l libstdc++.so.6.0.3
-rwxr-xr-x 1 root root 1068810 Apr 8 2005 libstdc++.so.6.0.3


Was könnte das Problem noch sein? :confused:

xanlosch
11.11.05, 20:34
Kann es sein, dass du ne 32bit Anwendung auf nem 64bit-System ausführen willst?

Dann brauchst du ein paar cross-compilierte Bibliotheken, da man 32bit-Anwendungen nicht so einfach mit 64bit-Bibliotheken ausführen kann. Sprich du musst die 32bit-Version dieser Bibliothek noch via RPM installieren.

cwernecke
11.11.05, 21:07
Nein, das ist die 64-Bit-Version von Battlefield 2, die da gestartet wird.

Kann es irgendwas einfaches sein, wie z.B. Server neu starten (oh Sünde!) oder dass der User die Bibliothek nicht kennt?

Oder muss ich das RPM starten mit Parametern, die auf JEDEN FALL drüberinstallieren?

Irgendwas Beknacktes ist das doch sicher... :ugly:

xanlosch
11.11.05, 21:12
Probier mal ein "ldconfig" als root aus.

Was sagt ein "ldd battlefield2" bzw. wie auch immer die ausführbare Datei von Battlefield 2 sich nennt ?

traffic
12.11.05, 03:59
Du hast die reine 32-Bit-Version des Pakets installiert. Lösung: Deinstallieren (rpm -e libstdc++34) und dann das oben verlinkte Paket nochmal installieren. Das oben verlinkte Paket enthält sowohl die 32-Bit-Version als auch die 64-Bit-Version. Die libstdc++.so.6 muss am Ende sowohl in /usr/lib als auch in /usr/lib64 liegen.

PS: Ich sag' lieber vorsichtshalber dazu, dass man die Dateien aus /usr/lib nicht nach /usr/lib64 kopieren oder verlinken kann. Die sind wirklich unterschiedlich.

cwernecke
12.11.05, 06:35
Recht herzlichen Dank! Das war in meinem Fall die Lösung! Möge der Weihnachtsmann dich reich beschenken! :D