# [solved] error while loading shared libraries: libQtXml.so.4

## expirience

Hallo zusammen,

ich habe gerade acetoneiso2, mit dem Installer, installiert und wollte es nun starten.

```
# acetoneiso2

acetoneiso2: error while loading shared libraries: libQtXml.so.4: cannot open shared object file: No such file or directory
```

Ist aber da:

```
# equery b libQtXml.so.4

[ Searching for file(s) libQtXml.so.4 in *... ]

x11-libs/qt-4.3.3 (/usr/lib64/qt4/libQtXml.so.4 -> libQtXml.so.4.3.3)
```

Ist ein 64Bit System. Das Prog wird aber wohl 32Bit sein. Da ich kein reines 64 aufgesetzt habe sonder eines mit 32 Emulation müsste es doch laufen, oder? 

Wie bieg ich das zurecht?Last edited by expirience on Mon Dec 17, 2007 11:43 am; edited 1 time in total

----------

## Max Steel

Da gibt es bisher leider nur eine Möglichkeit, die heißt, rebuild

wenn du noch mehr solcher Fehler hast einfach mal ein emerge -a gentoolkit && revdep-rebuild -X

----------

## expirience

Leider hab ich ab und zu solche Dinger. Ein revdep-rebuild bringt mir auch "jedesmal" 

```
broken /usr/kde/3.5/lib32/libqtmcop.so.1.0.0 (requires  libqt-mt.so.3)
```

Und baut mir dann =app-emulation/emul-linux-x86-soundlibs neu. Wirklich jedesmal.

Woran das liegt versteh ich nicht so ganz. Naja, mal sehn ob es jetzt was bringt.

Nachtrag:

```
 # revdep-rebuild -X

Configuring search environment for revdep-rebuild

Checking reverse dependencies...

Packages containing binaries and libraries broken by a package update

will be emerged.

Collecting system binaries and libraries... done.

  (/root/.revdep-rebuild.1_files)

Collecting complete LD_LIBRARY_PATH... done.

  (/root/.revdep-rebuild.2_ldpath)

Checking dynamic linking consistency...

  broken /usr/bin/acetoneiso2 (requires  libQtCore.so.4 libQtGui.so.4 libQtXml.so.4)

  broken /usr/kde/3.5/lib32/libqtmcop.so.1.0.0 (requires  libqt-mt.so.3)

 done.

  (/root/.revdep-rebuild.3_rebuild)

Assigning files to packages...

  *** /usr/bin/acetoneiso2 not owned by any package is broken! ***

  /usr/bin/acetoneiso2 -> (none)

  /usr/kde/3.5/lib32/libqtmcop.so.1.0.0 -> app-emulation/emul-linux-x86-soundlibs

 done.

  (/root/.revdep-rebuild.4_packages_raw, /root/.revdep-rebuild.4_package_owners)

Cleaning list of packages to rebuild... done.

  (/root/.revdep-rebuild.4_packages)

Assigning packages to ebuilds... done.

  (/root/.revdep-rebuild.4_ebuilds)

Evaluating package order... done.

  (/root/.revdep-rebuild.5_order)

All prepared. Starting rebuild...

emerge --oneshot  =app-emulation/emul-linux-x86-soundlibs-20071125

..........
```

Hat also nichts gebracht.

```
# acetoneiso2 

 acetoneiso2: error while loading shared libraries: libQtXml.so.4: cannot open shared object file: No such file or directory
```

----------

## Max Steel

Laut equery gehört diese Problemdatei zu arts

```
# equery b /usr/kde/3.5/lib/libqtmcop.so.1.0.0

[ Searching for file(s) /usr/kde/3.5/lib/libqtmcop.so.1.0.0 in *... ]

kde-base/arts-3.5.5 (/usr/kde/3.5/lib/libqtmcop.so.1.0.0)
```

Aber egal, du sagst du hast es mit dem Installer installiert, man darf also davon ausgehen das du nicht emerge verwendet hast, richtig?

Wenn wir mal davon ausgehen, gibt es in dem Paket eine Readme, und eine Datei namens configure dann müsste die richtige Reihenfolge

```
./configure

make

make install
```

zum installieren sein und die Datei INSTALL kommt erst später zum einsatz.

Das ist aber reine Spekulation da ich das Programm nicht kenne.

Mach die Installation laut der Textfile README INSTALL oder ähnliches.

----------

## expirience

Hi,

das Programm wird mit einem Installer installiert "acetoneiso2-2.0_RC1.run". Da gibt es kein configure make usw.

Das Problem scheint ja hier die 32bit emu zu sein, oder zumindest ist etwas nicht verlinkt. Oder lieg ich da falsch?

----------

## Max Steel

Nein du liegst damit nicht falsch, es ist richtig da ist etwas nicht so verlinkt wie er es braucht, das Programm scheint wohl auf QT4 zu bassieren (libQTXML.so.4)

Also müsstest du x11-libs/qt-4.3.2-r1 installieren.

Edith:

Die Idee ist mir jetz erst gekommen, bzw. das ist mir jetzt erst aufgefallen.

----------

## expirience

QT4 ist installiert:

```
# emerge -av qt

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] x11-libs/qt-4.3.3  USE="accessibility cups dbus gif jpeg mng mysql opengl png qt3support ssl tiff xinerama zlib -debug -doc -examples (-firebird) -glib -nas -nis -odbc -pch -postgres -sqlite -sqlite3" INPUT_DEVICES="-wacom" 41,350 kB
```

----------

## sirro

 *Quote:*   

> Laut equery gehört diese Problemdatei zu arts

 

Vergleich mal eure Pfade (lib32 vs. lib). Bei ihm sind es halt emu-libs...

Und genau da liegt auch das Problem: Der Installer ist für 32-Bit-Systeme, du hast aber ein 64-Bit-System und keine 32-Bit-Version von Qt4! Es kann also so nicht gehen.

Nimm einfach den Quellcode und mach im Verzeichnis src

```
qmake

make

make install
```

----------

## expirience

aber sind nicht genau dafür die 32bit emu libs? Um 32bit Anwendungen zu erlauben unter 64bit zu laufen?

und das nervt auch noch immer:

```
broken /usr/kde/3.5/lib32/libqtmcop.so.1.0.0 (requires  libqt-mt.so.3)
```

Last edited by expirience on Sat Dec 15, 2007 12:32 pm; edited 1 time in total

----------

## Max Steel

Stimmt aber was muss er dann machen? einen dreckigen Workaround also symlink, oder den Entwickler von acetoneiso anhauen das er doch bitte eine Version für 64-bit macht, oder er sich den Quellcode holt um selber zu bauen?

----------

## sirro

 *expirience wrote:*   

> aber sind nicht genau dafür die 32bit emu libs? Um 32bit Anwendungen zu erlauben unter 64bit zu laufen?

 

Ja natürlich. Aber wenn bisher noch niemand eine 32-Bit-Version von Qt4 gebraucht hat, dann gibt es halt keine. So banal ist das manchmal.

Die emul-Versionen lohnen sich ja hauptsächlich für Programme, die lange kompilieren (OOo, Firefox) oder nicht im Quellcode vorliegen.

 *Quote:*   

> 
> 
> ```
> broken /usr/kde/3.5/lib32/libqtmcop.so.1.0.0 (requires  libqt-mt.so.3)
> ```
> ...

 

Das ist ein Fehler in dem emul-paket und sollte gemeldet werden falls noch nicht geschehen.

Bei mir gibt es die Datei in app-emulation/emul-linux-x86-qtlibs

 *Max Steel wrote:*   

> einen dreckigen Workaround also symlink

 

Bringt nix. Ein Symlink macht noch keine 32-Bit-Version. Sonst würde es auch LD_LIBRARY_PATH tun.

Man bekommt dann beim starten ein "wrong ELF class: ELFCLASS64" und das wars dann auch wieder.

 *Quote:*   

> oder den Entwickler von acetoneiso anhauen das er doch bitte eine Version für 64-bit macht, oder er sich den Quellcode holt um selber zu bauen?

 

Jo, oder auf eine 32-Bit Qt4-Version hoffen, was am schwierigesten ist. Am einfachsten ist selbst kompilieren wie oben beschrieben oder noch schöner ein kleines ebuild im overlay.

----------

## expirience

So, habe es jetzt mit den sourcen installiert und läuft. Ich schieß mal app-emulation/emul-linux-x86-qtlibs nach. Vielleicht verschwindet dann die Meldung bei revdep-rebuild.

----------

## expirience

So, revdep-rebuild bringt jetzt auch keine Fehler mehr. Sauber.

Danke euch.

----------

## Moofar

I had the same problem with revdep-rebuild. I fixed it by downgrading to emul-linux-x86-soundlibs to the latest stable version, which is 20071114-r1. I could not understand through the google translation how you fixed it for the version 20071125. It would be nice to know in english how you fixed it.

----------

## zwede

The key to making the new emul-linux-x86-soundlibs happy is to emerge app-emulation/emul-linux-x86-qtlibs. That gets rid of the revdep-rebuild error.

----------

