PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : compilieren mit qt


MrBurns
01.10.01, 09:09
Also die Compiler Version ist die gleiche, ich hab qt 2.3.1 erst gestern neu kompiliert. Mit den SuSe rpm's hats genausowenig funktionert.

[ 04. Oktober 2001: Beitrag editiert von: MrBurns ]

MrBurns
03.10.01, 22:29
Hi,

also es scheint hier ein leidiges Thema zu sein, aber ich hab bei allen Thread nicht die Lösung für mein Problem gefunden deswegen:

Ich möchte gerne eine KDE Anwendung kompilieren, aber es hängt immer an den QT libraries. Meldung bei configure:

checking for Qt... Qt (>= Qt 2.2.1) (libraries) not found....

Mein QTDIR ist /usr/lib/qt2,welches ein link auf /usr/lib/qt-2.3.1 ist. KDE benutze ich in der Version 2.2.1. Mein QT habe ich selbst kompiliert und ich denke, daß alle header und include Dateien vorhanden sind, trotzdem funktioniert es nicht. Ich bin schier am verzweifeln, hab schon alles ausprobiert was ich hierfür an Lösungen gefunden habe.
Danke für Eure Hilfe.

Munick
03.10.01, 23:06
Schau dir mal die letzten Zeilen der config.log an. Da kann man erkennen, warum er meckert.
Wenn du es nicht findest, dann poste mal die letzten Zeilen, wo er nach qt sucht.

CU

iGEL
04.10.01, 01:10
Moin!

Eigentlich sollte es ein einfaches ./configure --with-qt=/usr/lib/qt2 tun. Tut es nicht?

cu Johannes

MrBurns
04.10.01, 05:54
Also configure --with-qt.... bringt auch nichts. Hab schon alles ausprobiert, auch with-qt-libraries und includes. Hier nun meine config.log:

configure:5148: checking for Qt
tried NO
configure:5309: rm -rf SunWS_cache; g++ -o conftest -O2 -fno-exceptions -fno-check-new -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long -fno-builtin -I/usr/lib/qt2/include -I/usr/X11R6/include -L/usr/lib/qt2/lib -L/usr/X11R6/lib conftest.C -lqt -lpng -lz -lm -ljpeg -lXext -lX11 -lSM -lICE 1>&5
conftest.C: In function `int main()':
conftest.C:15: warning: unused variable `QStringList*t'
conftest.C:20: warning: unused variable `int magnolia'
/tmp/cct3qphC.o: In function `main':
/tmp/cct3qphC.o(.text+0x38): undefined reference to `QString::shared_null '
/tmp/cct3qphC.o(.text+0x6b): undefined reference to `QIconView::QIconView(QWidget*, char const*, unsigned)'
/tmp/cct3qphC.o(.text+0x77): undefined reference to `QIconView::setWordWrapIconText(bool)'
/tmp/cct3qphC.o(.text+0x7c): undefined reference to `QString::shared_null '
/tmp/cct3qphC.o(.text+0x9f): undefined reference to `QString::setLatin1(char const*, int)'
/tmp/cct3qphC.o(.text+0xb4): undefined reference to `QString::shared_null '
/tmp/cct3qphC.o(.text+0xbf): undefined reference to `QStringData::deleteSelf() '
/tmp/cct3qphC.o(.text+0xd1): undefined reference to `QIconView::~QIconView()'
/tmp/cct3qphC.o(.text+0xf2): undefined reference to `QString::shared_null '
/tmp/cct3qphC.o(.text+0x101): undefined reference to `QString::makeSharedNull() '
/tmp/cct3qphC.o(.text+0x111): undefined reference to `QString::makeSharedNull() '
collect2: ld returned 1 exit status
configure: failed program was:
#include "confdefs.h"
#include qglobal.h
#include qapplication.h
#include qapp.h
#include qobjcoll.h
#include qevent.h
#include qstring.h
#include qstyle.h
#include qiconview.h
#if ! (QT_VERSION >= 221)
#error 1
#endif

int main() {
QStringList *t = new QStringList();
QIconView iv(0);
iv.setWordWrapIconText(false);
QString s;
s.setLatin1("Elvis is alive", 14);
int magnolia = QEvent::Speech; /* new in 2.2 beta2 */
return 0;
}



[ 04. Oktober 2001: Beitrag editiert von: MrBurns ]

MrBurns
04.10.01, 05:56
[ 04. Oktober 2001: Beitrag editiert von: MrBurns ]

Tosk
04.10.01, 07:34
ich verschiebe das ins passende forum...

Tosk

jgbauman
04.10.01, 08:17
Kann es sein das Du eine falsche Compiler-Version benutzt?
Zwischen g++-2.95, 2.96, 3.0 gibt es inkompatible Aenderungen im Binaerformat.
Wenn dein qt mit einem anderen Compiler erstellt wurde, kann dein Compiler die Klassen in den Libs nicht finden.

jgbauman
04.10.01, 19:18
Probier mal ein:
export LIBRARY_PATH=/usr/lib/qt2/lib:$LIBRARY_PATH
bevor du
rm config.cache
./configure ...
laufen laesst.
Irgenwie findet gcc eine alte libqt.so

hunter
04.10.01, 20:00
Ich habe letztens erst QT kompiliert und mir fehlen bei deinen Ausführungen zwei Dinge:

1. rpm -e qt solltest du gemacht haben, damit er die alte Version schon mal nicht mehr finden kann

2. QT hast du vermutlich so konfiguriert:

- ./configure -thread -..

Vor allem das -thread ist wichtig.

Aber dann musst du noch Eintragungen in die /root/.bash_profile und /home/Benutzer/.bash_profile machen. Das muss ungefähr so aussehen:

QTDIR=/usr/local/qt
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH

Es sollte in /local liegen, aber vermutlich reicht es wenn du stattdessen halt ..lib.. nimmst. Nach einem neuen Login hat er dann kapiert wo die Libs zu suchen sind.

Ich konnte nun Prima "Drip" Kompilieren ohne noch mal Ärger mit QT zu bekommen.

hunter
04.10.01, 20:02
Das steht im Übrigen alles in der Anleitung, also INSTALL glaub ich.

MrBurns
05.10.01, 06:57
Also ich hab jetzt nochmal alles gelöscht was mit qt zu tun hatte. Dann hab ich die rppm Packete von Suse eingespielt:

qtlib
qt-2.3.1
qt-devel-2.3.1
qt-extensions-2.3.1

der QTDIR liegt wieder auf /usr/lib/qt2, aber es funktioniert immer noch nicht. Ich weiß nicht was ich noch machen soll!

hunter
05.10.01, 08:08
Vergiss doch das ganze und kompilier dir qt einfach selbst. Dauert etwa 1 1/2 Stunden, aber dann läuft es wie es soll. Bei mir haben dir RPM Pakete für REDHAT auch nur Ärger gemacht weil sie nicht mit -thread kompiliert wurden.

Schau auch mal hier:
http://www.linuxforen.de/cgibin/ubb/ultimatebb.cgi?ubb=get_topic&f=9&t=000724

MrBurns
05.10.01, 09:10
O.K. Werd mich dann heute Abend wieder dransetzen. Eine Frage hab ich noch bei trolltech gibt es ja zwei QT versionen embedded und X11. Welche von beiden brauche ich da?

Danke, meld mich dann heute Abend wieder!

hunter
05.10.01, 17:11
Ich hab 2.3.1 mit X11 genommen und kompiliert.

Ich mein so:

./configure -thread -no-g++-exceptions

Dann "make" und eine Stunde Geduld aufbringen.

Danach noch die schon beschriebenen Eintragungen machen und vorher die alte QT Version killen.

Eventuell musst du auch noch andere Anhängsel machen, aber die beiden die jetzt da stehen solltest du mindestens haben.

MrBurns
06.10.01, 00:01
Also ich hab jetzt ersmtal alles gelöscht was ich zu qt gefunden habe. Dann hab ich die QT_embedded kompiliert, mit -thread -no-g++-exceptions -gif -system-jpg

Der qt Path hat auch gepaßt aber funktioniert hat es trotzdem nicht, immer noch die gleich Fehlermeldung. (Die config.cache hab ich gelöscht)

Ich werde dann morgen nochmal das qt X11 ausprobieren, in der Hoffnung das es dann damit endlich geht.

Gute Nacht!

Zaphod-B
06.10.01, 16:04
Leiber Mr. Burns,
Ihr Problem ist mir wohlbekannt.
Ich hätte da folgenden Lösungs Vorschlag:
Aus irgendwelchen Gründen,läuft die lib-Überprüfung folgenden Weg:QTLIB=/usr/lib/qt->/usr/lib/qt2
Lösungsmöglichkeit:
Für das kompilieren,ist es das einfachste,wenn auch nicht schönste Lösung,das Verzeichnis qt solange umzubenennen.
Ich hatte solche Probleme auch,bis ich auf diese recht simple Idee kam.
Probier es einfach aus.
Ich hoffe ich konnte dir Helfen.

Greetings Zaphod

MrBurns
06.10.01, 18:57
Also das mit dem umbenennen hat auch nicht geklappt. :confused: :confused:

Ilja
06.10.01, 19:55
um welches quellen handelt es sich denn?
ein link auf den download wäre nicht schlecht. könnte sein, dass das configure-script futsch ist?

MrBurns
07.10.01, 02:26
Also es geht um mp3kult:
http://prdownloads.sourceforge.net/mp3kult/mp3kult-0.4.tar.gz

Ich glaube aber nicht, daß es am configure liegt. Das Problem tritt nämlich auch bei anderen Programmen auf!

MrBurns
07.10.01, 18:27
Ich habs endlich geschafft. Also ich hab QT nochmal selbst kompiliert, da aber mein KDE2 mit dem selbskompilierten nicht starten wollte, hab ichs woanders hinkompiliert und jetzt muß ich halt bei configure immer -with-qt-dir machen.

Ich danke Euch allen für Eure Hilfe.
Einen schönen Abend noch
CU
Andi :D