Hallo, Forum
Leider bin ich in C++ und Qt ein ziemlicher Newbie. Ich versuche die Grafik-Library Qt (für Win32) unter Windows XP zum Laufen zu bekommen, wahlweise mit Netbeans (Cpp-Modul) oder Eclipse als Editor. Das installieren von Qt scheint funktioniert zu haben, habe es auch compiliert gekriegt, die lib sind da. Aber die mitgelieferten Beispiele kriege ich nicht zum Laufen, weder mit Cygwin, noch mit MinGW. (Die fertigen .exe-Dateien aus der Installation sind allerdings da und tun auch. Bringt mir aber nichts wenn ich am Quellcode versuche zu basteln)
Ich habe es so probiert, dass ich ausschließlich die Quellcode-Dateien (z.b. Beispiel 'Analogclock': main.cpp, analogclock.cpp, analogclock.h) in Netbeans zu einem neuen Projekt importiert habe und versuche zu compilieren. Was mache ich falsch?
Ich bekomme immer eine Fehlermeldung von wegen "undefined reference to [...]". Googeln hat mir bisher nicht geholfen.
Gruß, Johannes
----Compilerprotokoll:--------
Running "C:\Programme\Cygwin\bin\make.exe -f Makefile CONF=Release" in C:\Private\Cpp\Netbeans Projekte\analogclock
/usr/bin/make -f nbproject/Makefile-Release.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `/cygdrive/c/Private/Cpp/Netbeans Projekte/analogclock'
mkdir -p build/Release/Cygwin-Windows/_ext/C_/Programme/Qt/examples/widgets/analogclock
g++.exe -c -O2 -IC:/Programme/Qt/include -IC:/Programme/Qt/include/QtCore -IC:/Programme/Qt/include/QtGui -o build/Release/Cygwin-Windows/_ext/C_/Programme/Qt/examples/widgets/analogclock/analogclock.o C:/Programme/Qt/examples/widgets/analogclock/analogclock.cpp
mkdir -p build/Release/Cygwin-Windows/_ext/C_/Programme/Qt/examples/widgets/analogclock
g++.exe -c -O2 -IC:/Programme/Qt/include -IC:/Programme/Qt/include/QtCore -IC:/Programme/Qt/include/QtGui -o build/Release/Cygwin-Windows/_ext/C_/Programme/Qt/examples/widgets/analogclock/main.o C:/Programme/Qt/examples/widgets/analogclock/main.cpp
mkdir -p dist/Release/Cygwin-Windows
g++.exe -o dist/Release/Cygwin-Windows/analogclock build/Release/Cygwin-Windows/_ext/C_/Programme/Qt/examples/widgets/analogclock/analogclock.o build/Release/Cygwin-Windows/_ext/C_/Programme/Qt/examples/widgets/analogclock/main.o
build/Release/Cygwin-Windows/_ext/C_/Programme/Qt/examples/widgets/analogclock/analogclock.o:analogclock.cpp:(.text+0x5e): undefined reference to `QWidget::QWidget(QWidget*, QFlags<Qt::WindowType>)'
build/Release/Cygwin-Windows/_ext/C_/Programme/Qt/examples/widgets/analogclock/analogclock.o:analogclock.cpp:(.text+0x67): undefined reference to `vtable for AnalogClock'
[...]
--------
Quellcode kompilieren
-
CaptnChaos
- Beiträge: 605
- Registriert: 28. Juni 2007 15:01
- Kontaktdaten:
also bei einer undefinierten Referenc kann man davon ausgehen, dass eine Bibliothek nicht gefunden wurd. z.B. libQtCore.a oder libQtGui.a
du solltest mal versuchen den lib-Pfad von QT in deine PATH Variable zu speicher (nur hinzufügen, NICHT den PATH ersetzen !GEFÄHRLICH!). und ein fehlender vtable deutet meistens darauf hin, dass irgendetwas mit den signals/slots nicht stimmt. provier mal "make clean" dann "qmake" und dann nochmal "make". hast du irgendetwas an dem Beispiel geändert?
Achso, Du musst natürlich auch QTDIR und QMAKESPEC setzten, sonst funktioniert QT sowieso nicht richtig. Dafür gibts Anleitungen im Internet... Google ist dein bester Freund
du solltest mal versuchen den lib-Pfad von QT in deine PATH Variable zu speicher (nur hinzufügen, NICHT den PATH ersetzen !GEFÄHRLICH!). und ein fehlender vtable deutet meistens darauf hin, dass irgendetwas mit den signals/slots nicht stimmt. provier mal "make clean" dann "qmake" und dann nochmal "make". hast du irgendetwas an dem Beispiel geändert?
Achso, Du musst natürlich auch QTDIR und QMAKESPEC setzten, sonst funktioniert QT sowieso nicht richtig. Dafür gibts Anleitungen im Internet... Google ist dein bester Freund
Schau mal hier (Lektion 4, such am besten nach "QMAKESPEC"):
http://www.mrunix.de/forums/showthread. ... adid=31182
Da ist genau beschrieben, welche Umgebungsvariablen man anlegen sollte, und wie man mit den verschiedenen Pfaden für lib, include und bin umgeht. In Windows kannst du fast genau so vorgehen, nimm dafür einfach einen x-belibigen Ordner (z.B. share) und hau die entsprechenden Verknüpfungen da rein...
Ist zwar für QT 3.x geschrieben, funktioniert aber anscheinend bei v4.x genauso gut.
http://www.mrunix.de/forums/showthread. ... adid=31182
Da ist genau beschrieben, welche Umgebungsvariablen man anlegen sollte, und wie man mit den verschiedenen Pfaden für lib, include und bin umgeht. In Windows kannst du fast genau so vorgehen, nimm dafür einfach einen x-belibigen Ordner (z.B. share) und hau die entsprechenden Verknüpfungen da rein...
Ist zwar für QT 3.x geschrieben, funktioniert aber anscheinend bei v4.x genauso gut.