Autor Thema: libgobject-2.0.so.0: wrong ELF class: ELFCLASS64  (Gelesen 18729 mal)

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« am: 20. October 2008, 08:26 »
Hallöchen,

ich habe wieder mal ein Problem mit Linux (openSuSE 11.0 x86-64). Wie schon mal gesagt läuft flash bei mir nicht. Jetzt wollte ich den acroread installieren. Alles wunderbar, aber ich kann ihn nicht starten. Es passiert nichts. Und wenn ich in der Konsole acroread eingebe, dann bekomme ich folgende Meldung:

Zitat
libgobject-2.0.so.0: wrong ELF class: ELFCLASS64

Irgendwas stimmt da nicht. Hat es damit zu tun, dass er es nicht schaft 32 bit anwendungen zu starten? KA was ich machen soll. Ich habe schon Google um Rat gebeten. Aber bis jetzt hat nichts funktioniert. Evtl. könnt ihr mir sagen was da falsch läuft und vielleicht sogar eine Lösung anbieten. Ich wäre euch sehr dankbar.

bitmaster
In the Future everyone will need OS-64!!!

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 20. October 2008, 10:50 »
Moin

ich hab zwar noch nie ein 64 bit linux system aufgesetzt, aber so wie ich die Fehlermeldung interpretiere, ist die libgobject2.0.so.0 in der Falschen version vorhanden. sprich anstelle der 32Bit version erkennt er eine 64bit version. was natürlich nicht tuen kann. ( oder umgekehrt )

Linux verwaltet meines wissens die Libs für 64Bit und 32 Bit getrennt. (in getrennten verzeichnissen. die 64bit bekommen einen anderen namen) ggf kann es ein, das die falschen versionen in den falschen pfaden liegen. Kann es sein, das du teile deines systems selber übersetzt hast? ggf ursache für das durcheinander.


gruss

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 20. October 2008, 11:34 »
Ich würde auch erstmal versuchen, das Paket libgobject-2_0-0-32bit zu installieren
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 20. October 2008, 15:47 »
unter Debian heiß das packet das du benötigst
ia32-lib-gtk, vieleicht gibts unter suse ja was ähnliches

btw: IMHO ist 'Okular'(KDE) dem acroread vorzusiehen.
« Letzte Änderung: 20. October 2008, 15:53 von MNemo »
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 20. October 2008, 18:19 »
unter Debian heiß das packet das du benötigst
ia32-lib-gtk, vieleicht gibts unter suse ja was ähnliches
Ja, ich habe den Paketnamen genannt.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #5 am: 20. October 2008, 21:45 »
Hi, danke für die Antworten.

Also laut Yast2 habe ich libgobject-2_0-0-2.16.3-20.2 und libgobject-2_0-0-32bit-2.16.3-20.2 installiert. Wobei ersteres sich aus /usr/lib64/libgobject-2.0.so.0 und /usr/lib64/libgobject-2.0.so.0.1600.3 zusammensetzt. Letzteres setzt sich aus /usr/lib/libgobject-2.0.so.0 und /usr/lib/libgobject-2.0.so.0.1600.3 zusammen. Sieht doch richtig aus, oder nicht?
In the Future everyone will need OS-64!!!

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 20. October 2008, 21:52 »
Also wenn du SUSE als 64bit installiert hast, sollte /usr/lib ein link auf /usr/lib64 sein und ein extra verzeichniss /usr/lib32 existieren
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 20. October 2008, 22:50 »
Nein, /usr/lib ist 32 Bit. Das sieht so schon richtig aus. Bleibt nur die Frage, wieso ein 32-Bit-acroread die 64-Bit-Version der Lib benutzen will. Vielleicht mal "linux32 acroread" probieren?
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 21. October 2008, 09:55 »
Nein, /usr/lib ist 32 Bit.
:oops:
Sry. Hab selbst nur Debian und google schien mir zu bestätigen, dass Suse das gleich handhabt.
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 21. October 2008, 11:33 »
sollte auch so sein, den das haben meines wissens alle Linux versionen so zu handaben.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #10 am: 21. October 2008, 14:49 »
Also bei Eingabe von linux32 acroread erhalte ich die selbe Meldung. Ich bin am verzweifeln...  :-(

Zitat
linux32 acroread

Zitat
/usr/lib/Adobe/Reader8/Reader/intellinux/bin/acroread: error while loading shared libraries: libgobject-2.0.so.0: wrong ELF class: ELFCLASS64
In the Future everyone will need OS-64!!!

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #11 am: 21. October 2008, 16:49 »
Hm vielleicht mal testweise LD_PRELOAD auf den Pfad der 32-Bit Lib setzen? Das müsste bewirken, dass er erst die durchsucht, bevor er andere lädt, wimre.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #12 am: 29. October 2008, 12:39 »
Hm vielleicht mal testweise LD_PRELOAD auf den Pfad der 32-Bit Lib setzen? Das müsste bewirken, dass er erst die durchsucht, bevor er andere lädt, wimre.
Äh... und wie genau macht man so etwas.  :?    :-D
In the Future everyone will need OS-64!!!

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #13 am: 29. October 2008, 13:31 »
Etwa so:
$ LD_PRELOAD=/pfad/zur/richtigen/lib acroread

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #14 am: 30. October 2008, 12:30 »
Also wenn ich
Zitat
LD_PRELOAD=/usr/lib64 acroread
schreibe, dann sagt er mehrmals
Zitat
ERROR: ld.so: object '/usr/lib64' from LD_PRELOAD cannot be preloaded: ignored.

 :?
In the Future everyone will need OS-64!!!

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #15 am: 30. October 2008, 18:09 »
Du sollst ja da auch nicht den Pfad zum Verzeichnis sondern den Pfad zur Lib angeben(also beispielsweise: /usr/lib/libgobject-2.0.so.0).

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #16 am: 31. October 2008, 10:31 »
Also bei Eingabe von
Zitat
LD_PRELOAD=/usr/lib/libgobject-2.0.so.0 acroread
erhalte ich die Meldung
Zitat
/usr/lib/Adobe/Reader8/Reader/intellinux/bin/acroread: error while loading shared libraries: libgobject-2.0.so.0: wrong ELF class: ELFCLASS64
.
In the Future everyone will need OS-64!!!

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #17 am: 31. October 2008, 12:48 »
Was sagt denn ein readelf -h zu der Lib? Ist die 32-Bit?

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #18 am: 31. October 2008, 22:40 »
Was sagt denn ein readelf -h zu der Lib? Ist die 32-Bit?
Zitat
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x90a0
  Start of program headers:          64 (bytes into file)
  Start of section headers:          958408 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         6
  Size of section headers:           64 (bytes)
  Number of section headers:         38
  Section header string table index: 35
Also Nö, die ist 64 bit. Was ist da schief gelaufen? :/
In the Future everyone will need OS-64!!!

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #19 am: 31. October 2008, 23:22 »
aha aha

Habs jetzt hinbekommen. Laut just sind die libs in der version 1600.3 installiert. Aber die symlinks zeigten im Ordner lib alle auf die 1800.1 versionen, die 64 bittig waren. Die 1800.1 versionen habe ich gelöscht und die symlinks auf 1600.3 gesetzt. Das musste ich mit libgobject, libgio, libgthread und libgmodule machen. Jetzt funktionierts. Vielen dank für deine / eure Hilfe.
In the Future everyone will need OS-64!!!

 

Einloggen