Archiv verlassen und diese Seite im Standarddesign anzeigen : Kdevelop 2.2.1 und SuSE V7.3, benuetzt falsche Bibliotheken - war Kdevelop 1.3 und QT
Guten Tag, allerseits.
Ich nehme mein altes Thema Kdevelop1.3 und QT3 unter dem Thema Kdevelop 2.2.1 uns SuSE V7.3 wieder auf. Das Problem hat sich in der Zwischenzeit so verschoben, dass der alte Titel irrefuehrend ist.
Um was es geht:
Kdevelop 2.2.1 aus der SuSE V7.3 Distribution funktioniert nicht. Kdevelop 2.2.1 braucht den Patch autoconf, ohne diesen geht das configure nicht. Dieser Patch ist auf meinem System installiert.
Wenn ich ein Programm kompiliere, welches kde funktionen benuetzt, z.b. kprocess, klappt zwar die Kompilierung, aber das Linken schlaegt fehl, mit z.b.
/opt/kde/lib/libkdecore.so: undefined reference to `QComboBox::insertItem(char const *, int)'
Offensichtlich versucht kdevelop gegen /opt/kde/lib zu linken; diese Bibliothek passt aber nicht zu Kdevelop 2.2.1.
Die Bibliotheken fuer kde2 sind in /opt/lib/kde2 diejenigen fuer kde sind in /opt/lib/kde. Sie sind durch die Installation/Upgrade dahin kopiert worden, dies scheint der Default bei SuSE V7.3 zu sein.
Autoconf generiert zwei Dateien, aclocal.m4 und acinclude.m4, und da steht eben unter kde_libdirs der falsche Wert.
acinclude.m4:kde_incdirs="/usr/lib/kde/include /usr/local/kde/include /usr/kde/include /usr/include/kde /usr/include /opt/kde/include $x_includes $qt_includes"
acinclude.m4:kde_libdirs="/usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib /usr/X11R6/lib /opt/kde/lib /usr/X11R6/kde/lib"
Wie ich den autoconf Patch verstehe, so ist dies das autoconf von SuSE V7.2.
Wenn ich ein autoconf durchfuehre, steht also in acinclude.m4 bereits der inkorrekte Pfad zur kde2 library.
Wie und wo gehts weiter?
Vielen Dank fuer Eure Hilfe.
Peter Sutter
anda_skoa
24-01-2002, 11:14
Was passiert wenn du, nachdem du config.cache gelöscht hast, configure mit --libdir und --includedir aufrufst und dort die entsprechenden Pfade angibst?
Ciao,
_
Danke fuer Deine Antwort, anda_skoa
Ja, ich hab dem ganzen Upgrade nicht getraut, jetzt habe ich das ganze System neu aufgebaut, d.h. alles geloescht und von der CD neu installiert, habe auch saemtliche Patches heruntergeladen und installiert. - dies erklaert die lange Funkstille.
Deine Fragen was passiert wenn ich --libdir und --includedir angebe haben mich zu etlichen Experimenten veranlasst. Ich bin durch die aber nicht viel klueger geworden. Hier die Resultate
Ich hab jetzt beide Versionen von SuSE Linux (V7.1 und 7.3) auf verschiedenen Festplatten installiert, kann also mittels re-boot die zwei Kdevelops vergleichen.
Um das ganze zu testen, erstellte ich ein neues Projekt - kde2test - mit Kdevelop-2.2.1. Das Programm soll nur mittels kprocess einen Subprocess durchfuehren. Dies versuche ich dann mit Kdevelop 2.2.1 und Kdevelop 1.3 zu kompilieren.
Der wesentliche Unterschied den ich zwischen den beiden KDevelop fand, ist dass ich unter Kdevelop 1.3 keine Linker Optionen angeben muss, das anclicken der entsprechenden Bibliotheks Checkbox genuegt - vorausgesetzt dass die zwei Pfade in Kdevelop Setup auf die richtigen Bibliotheken (kde2 und Qt) zeigen.
Dem ist aber unter Kdevelop 2.2.1 nicht so, es spielt keine Rolle was unter Kdevelop Setup als Pfad zur kde2 Bibliothek steht. Ich MUSS unter Project Options - Linker Options -L/opt/kde2/lib spezifizieren UND die entsprechende Bibliotheks Checkbox muss auch angeclickt sein.
Die entsprechenden Eintraege --libdir=/opt/kde2/lib und --include-dir=/opt/kde2/include fuer das configure scheinen ignoriert zu werden, sie scheinen jedenfalls auf meinem System keinen Einfluss zu haben.
Ach ja, noch was, fuer beide Kdevelops muss ich unter den compile options -I/opt/kde2/include angeben, sonst findet er die nicht. Komischerweise brauch ich aber fuer Qt nichts spezielles angeben, hier genuegen die Defaultwerte die Kdevelop annimmt.
Autoconf loescht config.cache auf meinem System und baut es neu auf, zusammen mit aclocal.m4 und acinclude.m4.
Ich verstehe immer noch nicht (oder nicht mehr) wie das ganze zusammenpasst. Ich dachte mit --libdir kann ich spezielle Bibliotheken fuer den Linker definieren und mit --include-dir definiere ich wo die definitionen fuer die includes stehen. Fuer Qt gebe ich ja unter configure --with-qt-dir die Qt Bibliothek an, gibts auch ein --with-kde-dir? und warum muss ich /opt/kde2/lib unter extra libraries spezifizieren?
Vielen Dank fuer die Hilfe.
Peter
anda_skoa
28-01-2002, 13:35
Hmm, eigenartig.
Bei mir funktioniert alles, allerdings hab ich keine SuSE, vielleicht kann dir eine SuSE Benutzer besser helfen.
Welche autoconf, automake Version hast du?
Meine sind:
Autoconf version 2.13
automake (GNU automake) 1.4-p4
(werden auch auf www.kdevelop.org als requirements angeführt)
Ich denke ich hab wo gelesen, dass zB die autoconf 2.5 nicht geht.
Ciao,
_
Zaphod-B
28-01-2002, 18:36
Moin,
Ist zwar keine Lösung, sndern nur ne Krücke:
Benenne /opt/kde zb in /opt/kde.old um, dann gehts, vielleicht gibts eine andere Lösung, aber im Moment behelfe ich mir so.
Greetings Zaphod-B
Hallo und guten Tag, Anda_Skoa und Zaphod-B,
Zuerst einmal vielen Dank fuer Eure Antworten.
Meine versionen:
Autoconf version 2.13
automake (GNU automake) 1.4-p5
also das gleiche wie Anda_Skoa hat.
Mit viel configure mit verschiedenen optionen etc. hab ich es jetzt dahin gebracht, dass ich unter SuSE V7.1 mit Qt2 und unter SuSE V7.3 mit Qt3 kompilieren und Linken kann. Das einzige das ich von Hand jeweils nachfuehren muss ist das include directory von mysql, das liegt in SuSE V7.3 in einem anderen Pfad als unter SuSE V7.1
Allerdings bekomme ich beim Linken unter SuSE V7.1 und Qt3 eine Warnung:
/usr/i486-suse-linux/bin/ld: warning: libqt.so.2, needed by /opt/kde2/lib/libDCOP.so.1, may conflict with libqt.so.3
und beim Ausfuehren des Programs steurzt es mit Segmentation fault ab. Das Program laeuft jedoch einwandfrei unter SuSE V7.1 mit Qt2. Es scheint da irgendwo einen Konflikt mit den Laufzeit Bibliotheken zu geben.
Frage: Wo kann ich unter Kdevelop was angeben um dies auch noch zu beheben? Fuer was ist libDCOP? Ist libDCOP.so.1 aufwaerts kompatibel mit libqt.so.3?
Danke fue Eure Mithilfe.
Peter Sutter
anda_skoa
03-02-2002, 10:54
Hmm, er linkt gegen die DCOP lib der falschen KDE version.
Wie alle KDE libs ist auch die dcop lib nicht binär kompatiblel zur neuen Qt Version.
Vielleicht hilft das. Vor dem ./configure (config.cache ist gelöscht worden)
Annahme: KDEDIR zeigt auf das KDE3 Verzeichnis, QTDIR auf das Qt3 Verzeichnis:
#> export LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
Ansonsten kann ich dir noch das kde2-and-kde3 HWOTO anbieten:
http://women.kde.org/projects/coding/kde2+3.html
Ciao,
_
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.