Lazarus mit Qt neu kompilieren -> Fail

Für Installationen unter Linux-Systemen
creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von creed steiger »

Bei mir funktioniert V1.70 und qt-devel 4.5.0 ohne Probleme.

Reinhard
Beiträge: 46
Registriert: Fr 26. Sep 2008, 16:56

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von Reinhard »

linopolus hat geschrieben:Habs jetz nochmal mit -dUSE_QT_44 versucht und es hat geklappt!!! Fragt mich nicht warum? :D

Hm die schliessen buttons sind weg und Alt F4 geht auch nicht:( Halb so wild, es gibt ja Datei -> Beenden :)



Wenn du QT4.5 installiert hast,. und du lazarus mit QT4.4 kompilierts, hast du keinen schliesen Button mehr.

Das der typische Fehler der komtm wenn die Versionen nicht übereinstimmen.

Das hier habe ich von einer Website , mit diesen Befehl klappt es immer.

Du wechselst dazu händisch (auf der konsole) in das Verz. in dem Lazarus installiert ist.

Bei Ubuntu z.b. unter: /usr/lib/lazarus

Zum Komplieren der QT Schnittstelle eingeben : (als root !) oder mittels sudo !

make clean all LCL_PLATFORM=qt OPT="-dUSE_QT_45 -k'-framework' -k'Qt4Intf' -k'-lobjc' -k'-framework' -k'Foundation'"


Achtung ! Unbedingt auf die QT Version achtgeben !
Soltte versehntlich in QT 4.5 z.b. -dUSE_QT_44 (also die 4.4er) angegeben werden erhält man keinen CLOSE button mehr.

Native KDE (Windows) Dialoge :
sudo make clean all LCL_PLATFORM=qt OPT="-dUSE_QT_45 "-dQT_NATIVE_DIALOGS" -k'-framework' -k'Qt4Intf' -k'-lobjc' -k'-framework' -k'Foundation'

Native heisst in diesen fall, QT verwendet nicht seinen eigenen FileOpen / DirectoryEdit Dialog, sondern den des jeweiligen Systemes, unter KDE dann halt den von KDE, under Windows den Windows eigenen.


Am Ende kommt dann irgendein Fehler mit -2, den kann man aber ignorieren.

IDE starten, und QT auswählen in den Compilereinstellungen.

Edit: Zum erfragen der QT version sollte folgender Befehl funktionieren :

kde${KDE_SESSION_VERSION}-config --version

das sieht dann in etwas so aus :

Qt: 4.5.0
KDE: 4.2.2 (KDE 4.2.2)
kde4-config: 1.0

oder so : (funktioniert auch unter GNOME wenn die QT Sachen installiert sind)

Qt: 3.3.8b
KDE: 3.5.10
kde-config: 1.0

linopolus
Beiträge: 24
Registriert: Fr 13. Feb 2009, 08:27
OS, Lazarus, FPC: Arch Linux, 2.9.27, 2.2.5
CPU-Target: Pentium4 Northwood
Wohnort: /home/linopolus

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von linopolus »

Reinhard hat geschrieben:Das hier habe ich von einer Website , mit diesen Befehl klappt es immer.

Weisst du die URL noch?
Gruß, linopolus

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von creed steiger »

LCL_PLATFORM=qt OPT="-dUSE_QT_45 QT_NATIVE_DIALOGS"
langt
afaik ist der andere Kram nur für Mac.
Ich werds bei Gelegenheit mal mit Qt 4.5.1 testen.
Edit: auch mit 4.5.1 problemlos

linopolus
Beiträge: 24
Registriert: Fr 13. Feb 2009, 08:27
OS, Lazarus, FPC: Arch Linux, 2.9.27, 2.2.5
CPU-Target: Pentium4 Northwood
Wohnort: /home/linopolus

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von linopolus »

creed steiger hat geschrieben:LCL_PLATFORM=qt OPT="-dUSE_QT_45 QT_NATIVE_DIALOGS"
langt
afaik ist der andere Kram nur für Mac.
Ich werds bei Gelegenheit mal mit Qt 4.5.1 testen.
Edit: auch mit 4.5.1 problemlos

Der kennt QT_NATIVE_DIALOGS nicht.

edit: jetzt kennt ders ploetzlich. Problem:

Code: Alles auswählen

Linking ../lazarus
/usr/bin/ld: warning: ../link.res contains output sections; did you forget -T?
/tmp/yaourt-tmp-linopolus/aur-lazarus-svn-qt/lazarus-svn-qt/src/lazarus-build/lcl/units/i386-linux/qt/qtwidgets.o: In function `TQTTABWIDGET__ATTACHEVENTS':
qtwidgets.pas:5845: undefined reference to `QTabWidget_hook_hook_tabCloseRequested'
/tmp/yaourt-tmp-linopolus/aur-lazarus-svn-qt/lazarus-svn-qt/src/lazarus-build/lcl/units/i386-linux/qt/qtwidgets.o: In function `TQTTABWIDGET__SETTABSCLOSABLE':
qtwidgets.pas:5989: undefined reference to `QTabWidget_setTabsClosable'
/tmp/yaourt-tmp-linopolus/aur-lazarus-svn-qt/lazarus-svn-qt/src/lazarus-build/lcl/units/i386-linux/qt/qtwsdialogs.o: In function `TQTWSFILEDIALOG__CREATEHANDLE':
qtwsdialogs.pp:326: undefined reference to `QFileDialog_setOption'
/tmp/yaourt-tmp-linopolus/aur-lazarus-svn-qt/lazarus-svn-qt/src/lazarus-build/lcl/units/i386-linux/qt/qtwsdialogs.o: In function `TQTWSFILEDIALOG__SHOWMODAL':
qtwsdialogs.pp:399: undefined reference to `QFileDialog_setOption'
/tmp/yaourt-tmp-linopolus/aur-lazarus-svn-qt/lazarus-svn-qt/src/lazarus-build/lcl/units/i386-linux/qt/qtwsdialogs.o: In function `TQTWSSELECTDIRECTORYDIALOG__CREATEHANDLE':
qtwsdialogs.pp:514: undefined reference to `QFileDialog_setOption'
lazarus.pp(123,1) Error: Error while linking
lazarus.pp(123,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
make[2]: *** [lazarus] Fehler 1
make[2]: Leaving directory `/tmp/yaourt-tmp-linopolus/aur-lazarus-svn-qt/lazarus-svn-qt/src/lazarus-build/ide'
make[1]: *** [ide] Fehler 2
make[1]: Leaving directory `/tmp/yaourt-tmp-linopolus/aur-lazarus-svn-qt/lazarus-svn-qt/src/lazarus-build/ide'
make: *** [ide] Fehler 2
So langsam bin ich am verzweifeln:(
Gruß, linopolus

Den Jean
Beiträge: 1
Registriert: Mo 25. Mai 2009, 19:48

tr

Beitrag von Den Jean »

linopolus hat geschrieben:Habs jetzt mit -dUSE_QT_45 gemacht aber da kommen jetzt andere Fehler:

Code: Alles auswählen

"LCL" beendet
"Package-Registrierung" beendet
"IDE-Schnittstelle" beendet
"SynEdit" beendet
"CodeTools" beendet
...
qtwsdialogs.pp:514: undefined reference to `QFileDialog_setOption'
...
/usr/lib/lazarus/ide/lazarus.pp(123,1) Error: Error while linking
/usr/lib/lazarus/ide/lazarus.pp(123,1) Fatal: There were 1 errors compiling module, stopping
:(


I do not know german well, so in English: When you mix Qt 44 with libqt4intf for Qt4.5 you get this failure because
Qt 4.5 has a QFileDialog::setOption method, Qt 4.4 not. You can see that here:
http://doc.qtsoftware.com/4.5/qfiledial ... #setOption
http://doc.qtsoftware.com/4.4/qfiledialog.html
This means the linker finds a Qt 4.4 and not the Qt 4.5 you think you installed (you did not correctly)

regards,

Den Jean

linopolus
Beiträge: 24
Registriert: Fr 13. Feb 2009, 08:27
OS, Lazarus, FPC: Arch Linux, 2.9.27, 2.2.5
CPU-Target: Pentium4 Northwood
Wohnort: /home/linopolus

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von linopolus »

I used QT45 not QT44
Gruß, linopolus

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von creed steiger »

was bringt den
qtconfig
im About Dialog?

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von marcov »

linopolus hat geschrieben:Habs jetz nochmal mit -dUSE_QT_44 versucht und es hat geklappt!!! Fragt mich nicht warum? :D


Vielleicht ist qt4intf noch nicht fuer 4.5 geupdate.

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von Targion »

Doch, ist sie. Nutzt am besten den Lazarus 0.9.27-SVN snapshot, denn nur dieser hat die nötigen Änderungen drin. Auch FPC 2.2.4 ist nützlich.
Eine extra für Qt4.5 kompilierte und paketierte Variante findet ihr auf Launchpad in meinem PPA (bitte nicht das PPA für "karmic" einbinden, da ist eine extra modifizierte Lazarus-Variante drin, welche (noch) nicht produktiv genutzt werden sollte).
Für RPM-basierende Systeme gibt es bald auch ein Paket. Außerdem wird das Paket vorraussichtlich in Ubuntu Karmic enthalten sein, wenn alles glatt geht. In den Fedora-Archiven soll es dann später auch landen.
Lazarus 0.9.27 kann, wenn alles installiert ist, mit dem Qt4.5-Flak erstellt werden. Viel Spaß :mrgreen:

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von knight »

Targion hat geschrieben:(bitte nicht das PPA für "karmic" einbinden, da ist eine extra modifizierte Lazarus-Variante drin, welche (noch) nicht produktiv genutzt werden sollte).


Hast du mal mit Mazen Neifer gesprochen? Er ist für die Lazarus/FPC Pakete für Debian (und damit auch Ubuntu) zuständig.

knight

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von Targion »

knight hat geschrieben:Hast du mal mit Mazen Neifer gesprochen? Er ist für die Lazarus/FPC Pakete für Debian (und damit auch Ubuntu) zuständig.
knight

Nein, den kenne ich nicht. Die Lazarus-Variante im PPA ist auch ziemlich "quick-and-dirty" zusammengeschraubt, um einige Eigenschaften des PPAs und einiger Programme zu testen und sollte auf keinen Fall für anderes als experimentelle Software genutzt werden. Die libqt4intf.so steht im Moment noch auf der Warteliste für eine Aufnahme in Ubuntu/Debian... (Mind. zwei MOTUs müssen das Paket abnicken, bevor es rein darf) Ich melde mich mal bei Mazen, da er Debian-Maintainer ist, könnte das die Aufnahme der libqt4intf sehr beschleunigen.

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von Giantics »

Wow, ich bin ganz überrascht.

Habe vorhin mal wieder versucht Programme für Qt zu kompilieren. Ging natürlich erstmal wieder nicht.
Habe dann die aktuelle Lazarus 0.9.27 geladen und siehe da: nicht nur die Programme erscheinen im Qt4-Look sondern auch Lazarus selbst :)
Das einzige was gerade noch nicht geht sind die nativen Kde4-Dialoge:
sudo make clean all LCL_PLATFORM=qt OPT="-dUSE_QT_45 -dQT_NATIVE_DIALOGS"
erzeugt die gleichen Nicht-KDE-Dialoge wie
sudo make clean all LCL_PLATFORM=qt OPT="-dUSE_QT_45 QT_NATIVE_DIALOGS"

Wie lautet der Befehl richtig?

Ansonsten: Lob an das Lazarus-Team, super Arbeit, weiter so!

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von Hitman »

Giantics hat geschrieben:Das einzige was gerade noch nicht geht sind die nativen Kde4-Dialoge:
sudo make clean all LCL_PLATFORM=qt OPT="-dUSE_QT_45 -dQT_NATIVE_DIALOGS"
erzeugt die gleichen Nicht-KDE-Dialoge wie
sudo make clean all LCL_PLATFORM=qt OPT="-dUSE_QT_45 QT_NATIVE_DIALOGS"

Wie lautet der Befehl richtig?


Wie letztens schon in dem gleichnamigen Topic geschrieben, glaube ich nicht, dass das überhaupt geht. Immerhin wird nicht grundlos zwischen QApplication und KApplication unterschieden.

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: Lazarus mit Qt neu kompilieren -> Fail

Beitrag von Giantics »

Hitman hat geschrieben:Wie letztens schon in dem gleichnamigen Topic geschrieben, glaube ich nicht, dass das überhaupt geht. Immerhin wird nicht grundlos zwischen QApplication und KApplication unterschieden.


Naja, der Screenshot des anderen Threads sagt was anderes :wink:

Antworten