Seite 1 von 1

welche QtLibraries braucht meine Applikation?!?

Verfasst: 8. Juli 2006 09:08
von andiK
Hallo zusammen,

ich beschäftige mich gerade damit, meine Applikation unter Linux als binäres Paket verteilbar zu machen. Im Qt Assistant steht, dass man mit dem command ldd ./application sich die von der Applikation benötigten Qt Libraries anzeigen lassen kann.

Ich bekomme den volgenden Ausdruck:

linux-gate.so.1 => (0x007ae000)
libusb-0.1.so.4 => /usr/lib/libusb-0.1.so.4 (0x00a97000)
libQt3Support.so.4 => /usr/local/Trolltech/Qt-4.1.2/lib/libQt3Support.so.4 (0x00378000)
libQtSql.so.4 => /usr/local/Trolltech/Qt-4.1.2/lib/libQtSql.so.4 (0x00fb4000)
libQtXml.so.4 => /usr/local/Trolltech/Qt-4.1.2/lib/libQtXml.so.4 (0x002a0000)
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.1.2/lib/libQtGui.so.4 (0x00a9f000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00223000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x0028c000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x00111000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x0012b000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00134000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00138000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00142000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00145000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x0024d000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x001b3000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00661000)
libQtNetwork.so.4 => /usr/local/Trolltech/Qt-4.1.2/lib/libQtNetwork.so.4 (0x001c3000)
libQtCore.so.4 => /usr/local/Trolltech/Qt-4.1.2/lib/libQtCore.so.4 (0x007af000)
libz.so.1 => /usr/lib/libz.so.1 (0x002e5000)
libdl.so.2 => /lib/libdl.so.2 (0x0021a000)
libpthread.so.0 => /lib/libpthread.so.0 (0x002f8000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0473f000)
libm.so.6 => /lib/libm.so.6 (0x0030c000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00331000)
libc.so.6 => /lib/libc.so.6 (0x008ff000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x0021e000)
libexpat.so.0 => /lib/libexpat.so.0 (0x0075e000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00295000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00298000)
/lib/ld-linux.so.2 (0x0035d000)
So wie ich sehe sind da ALLE Qt Libraries aufgezählt, wobei ich absolut nix mit SQL oder XML programmiert habe. Wo kommen diese Abhängigkeiten her und muss ich die Libs für XML und SQL wirklich mit meiner Software verteilen?!?

Viele Grüsse,

Andi

Verfasst: 8. Juli 2006 10:02
von ChMaster
servus,

ldd is nix für schwache nerven :P
gib mal dies ein:

objdump -p ./app | grep NEEDED

wobei app dein programm ist, dann siehst du, was du wirklich brauchst :)

Verfasst: 8. Juli 2006 14:36
von andiK
Hallo ChMaster,

danke für denTipp, aber leider bringt objdump genau das selbe Ergebnis.
NEEDED libusb-0.1.so.4
NEEDED libQt3Support.so.4
NEEDED libQtSql.so.4
NEEDED libQtXml.so.4
NEEDED libQtGui.so.4
NEEDED libpng12.so.0
NEEDED libSM.so.6
NEEDED libICE.so.6
NEEDED libXrender.so.1
NEEDED libXrandr.so.2
NEEDED libXcursor.so.1
NEEDED libXinerama.so.1
NEEDED libfreetype.so.6
NEEDED libfontconfig.so.1
NEEDED libXext.so.6
NEEDED libX11.so.6
NEEDED libQtNetwork.so.4
NEEDED libQtCore.so.4
NEEDED libz.so.1
NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
Jetzt wieder dieFrage, warum braucht mein Programm die Libs für XML und SQL?

im .pro file habe ich nur folgende Libs angegeben:
qt += qt3support network

Gruesse,

Andi

Verfasst: 8. Juli 2006 17:02
von Christian81
Da in qt3support alles zusammengeschmissen wurde was aus Qt3 evtl. noch nötig ist, kann es sein dass dort eben auch Qt3 - SQL und XML Klassen drin sind welche wiederrum die beiden Libs aus Qt4 brauchen. Ich würde versuchen Qt3support rauszubekommen.

Verfasst: 9. Juli 2006 08:51
von andiK
Hallo Christian,

danke, das könnte stimmen. Ich hab' schon angefangen Qt3 Elemente zu ersetzen,
ist aber mehr Aufwand als ich zunächst dachte.

Gruesse,

Andi