Seite 1 von 1

Qt 4.5.3 unter Ubuntu 9.10 konfigurieren

Verfasst: 6. November 2009 16:31
von gig-raf
Ich habe folgendes versucht;

sudo apt-get install libxext-dev

cd ~/qtsdk-2009.04/qt

./configure

make

und bekomme am ende folgende fehler;


atcher_unix_p.o .obj/release-shared/moc_qtextcodecplugin.o -L/home/user/qtsdk-2009.04/qt/lib -lm -lrt -lpthread -ldl
.obj/release-shared/qthread_unix.o: In function `QThreadPrivate::createEventDispatcher(QThreadData*)':
/home/user/qtsdk-2009.04/qt/src/corelib/thread/qthread_unix.cpp:159: undefined reference to `QEventDispatcherGlib::QEventDispatcherGlib(QObject*)'
/home/user/qtsdk-2009.04/qt/src/corelib/thread/qthread_unix.cpp:156: undefined reference to `QEventDispatcherGlib::versionSupported()'
.obj/release-shared/qcoreapplication.o: In function `QCoreApplicationPrivate::createEventDispatcher()':
/home/user/qtsdk-2009.04/qt/src/corelib/kernel/qcoreapplication.cpp:274: undefined reference to `QEventDispatcherGlib::QEventDispatcherGlib(QObject*)'
/home/user/qtsdk-2009.04/qt/src/corelib/kernel/qcoreapplication.cpp:273: undefined reference to `QEventDispatcherGlib::versionSupported()'
collect2: ld returned 1 exit status
make[1]: *** [../../lib/libQtCore.so.4.5.3] Error 1
make[1]: Leaving directory `/home/user/qtsdk-2009.04/qt/src/corelib'
make: *** [sub-corelib-make_default-ordered] Error 2

was habe ich falsch gemacht?

Verfasst: 6. November 2009 17:07
von solarix
sudo apt-get install libglib2.0-dev

?

Verfasst: 6. November 2009 22:34
von gig-raf
leider bekomme ich jetz den folgende fehler:


.obj/release-shared/qabstractsocket.o: In function `QAbstractSocket::flush()':
/home/user/qtsdk-2009.04/qt/src/network/socket/qabstractsocket.cpp:1946: undefined reference to `QSslSocket::flush()'
.obj/release-shared/qabstractsocket.o: In function `qobject_cast<QSslSocket*>':
/home/user/qtsdk-2009.04/qt/src/network/../../include/QtCore/qobject.h:443: undefined reference to `QSslSocket::staticMetaObject'
.obj/release-shared/qabstractsocket.o: In function `QAbstractSocket::waitForDisconnected(int)':
/home/user/qtsdk-2009.04/qt/src/network/socket/qabstractsocket.cpp:1819: undefined reference to `QSslSocket::waitForDisconnected(int)'
collect2: ld returned 1 exit status
make[1]: *** [../../lib/libQtNetwork.so.4.5.3] Error 1
make[1]: Leaving directory `/home/user/qtsdk-2009.04/qt/src/network'
make: *** [sub-network-make_default-ordered] Error 2

was fehlen noch?

Verfasst: 7. November 2009 09:29
von Christian81
openssl devel?
Wenn SSL ist das zumindest eine logische Alternative...
Danach aber ./configure neu ausführen

Verfasst: 7. November 2009 15:29
von gig-raf
danke, aber das hat leider nicht funktioniert. Ich bekommer wie vorhin der selbe fehler.

gibts es nicht irgendwo im netz einen tutorial oder HowTo install qt45 unter Ubuntu, ich meine es muss doch dokumentiert sein damit man nicht die libs usw erraten muss?

Dasselbe Problem unter SUSE 11.2 (64 bit)

Verfasst: 28. Januar 2010 17:55
von arudolf
Beim compilieren unter SUSE 11.2 (64 bit) bleibe ich auch bei 'corelib' hängen.

[code]undefined reference to 'QEventDispatcherGlib::QEventDispatcherGlib(QObject*)'[/code]

Leider gibt es kein Paket 'libglib2.0-dev' - wo sind die fehlenden libraries?

Vielen Dank für einen Tip.

Re: Dasselbe Problem unter SUSE 11.2 (64 bit)

Verfasst: 29. Januar 2010 08:22
von Mani99
arudolf hat geschrieben: Leider gibt es kein Paket 'libglib2.0-dev' - wo sind die fehlenden libraries?
Is klar, weil die lib ja auch libglib-2.0-dev heißt.

Hier gibts eine installanleitung und die dazugehörigen requirements!

Verfasst: 29. Januar 2010 09:02
von arudolf
Vielen Dank für die Antwort.

In Suse 11.2 gibt es die libglib-2_0-0 (installiert: Version 2.22.1-2.2), aber keine development library, also z.B. libglib-2.0-dev oder so. Man müßte herausfinden, welche Programme in der libglib-2.0-dev bei Ubuntu sind und in welchem Paket diese Programme bei Suse 11.2 sind. Hier komme ich nicht weiter.

Verfasst: 29. Januar 2010 09:09
von ralli
Muss es denn unbedingt die Qt Version 4.5.3 sein? Wenn Du unter Ubuntu mit dem Software-Center Qdevelop installierst, bekommst Du die Qt Version 4.5.2 und alles läuft perfekt. Lediglich der G++ muss noch installiert werden, aber das versteht sich ja von selbst.

Verfasst: 29. Januar 2010 09:22
von Mani99
@arudolf

Bei dir heißt die dev lib halt anders, ich hab für suse "glib2-devel" gefunden, installier das mal!

Verfasst: 29. Januar 2010 09:29
von arudolf
glib2-devel (Version 2.22.1-2.2) ist bereits installiert.

Vielleicht hat es etwas damit zu tun, dass er 64 bit libraries in den Standard Verzeichnissen für 32 bit such. Allerdings habe ich auch das schon ausprobiert, indem ich die Makefile im das Verzeichnis ./src/corelib editiert habe und diese Verzeichnisse als linker Optionen mit "-L/lib64 -L/usr/lib64" angegeben habe. Das hilft auch nichts.

Anm.: Ich installiere Qt 4.6 auf Open SUSE 11.2.

Verfasst: 29. Januar 2010 09:35
von Mani99
Dann bleibt dir nicht viel anderes über als zu schauen ob du alle libs installiert hast:
  • libXrender
    libXrandr
    libXcursor
    libXfixes
    libXinerama
    libfontconfig
    libfreetype
    libXi
    libXt
    libXext
    libX11
    libSM
    libICE
    libpthread
Die libs, die am häufigsten abgehen sind libfontconfig und libfreetype.

Verfasst: 29. Januar 2010 09:37
von Christian81

Verfasst: 29. Januar 2010 09:41
von Mani99
@gig-raf

Was du brauchst ist:

Code: Alles auswählen

sudo apt-get update && sudo apt-get install build-essential libfreetype6-dev libfontconfig1-dev libglib2.0-dev

Verfasst: 29. Januar 2010 10:04
von arudolf
@Mani99: bin alle durchgegangen, sie heissen alle etwas anders, aber mit dem Filter 'RPM provides' findet man sie. Sie sind alle installiert, allerdings ohne die 32bit development Pakete. Bräuchte man die auch?

@Christian81: Vielen Dank, darauf wird es wohl hinauslaufen. Aber ich wollte halt mal sehen, was da auf einen zukommt, wenn man solche Pakete selber compiliert. Bei anderen Paketen wird es zu ähnlichen Schwierigkeiten kommen. Inbesondere müßte es doch möglich sein, die library zu identifizieren, in der sich das Objekt "QEventDispatcherGlib" befindet.

Anm.: Mein Desktop ist der XFCE