Projekte mit Qt und Dev-cpp(MinGW) kompilieren
-
Ich habe ebenfalls alles so gemacht, wie in der Anleitung beschrieben.
Nachdem ich die make-file in dev c++ einfügt hatte, habe ich versucht, mein kleines Testprogramm zu kompilieren. Dabei erscheint immer noch die Fehlermeldung:
[Linker error] undefined reference to `vtable for Hauptfenster'
welche ohne eigenen Make-file auch erscheinen würde.
Könnte dies eventuell ein Compilerproblem von QT sein ?
Vielleicht sollte ich QT nochmal neu installieren und dabei den Compiler von Dev C++ angeben. Oder hat jemand eine Idee ?
-
terminator123: sorry, ich kann dir bei deinem Problem auch nicht helfen. Evtl. versuchst du's noch im GUI-Subforum weiter oben.
Bluffix schrieb:
[Linker error] undefined reference to `vtable for Hauptfenster'
Das sieht eher nach einem Vererbungsproblem aus. Destruktor nicht virtual oder in die Richtung.
-
Das kann nicht sein, da es compiliert wird, wenn ich Q_OBJECT weglasse. Natürlich funktioniert die Signal-Slot Verbindung dann nicht.
Hier der Quelltext meines Testprogramms:
#include <QApplication> #include <QObject> #include <QWidget> #include <QGridLayout> #include <QLabel> #include <QPushButton> class Hauptfenster : public QWidget { Q_OBJECT public: Hauptfenster () { box = new QGridLayout (this); button[0] = new QPushButton ("Drücken1",this); button[1] = new QPushButton ("Drücken2",this); label[0] = new QLabel("Was ist das ?",this); label[1] = new QLabel("Was ist das ?",this); box->addWidget(button[0],0,0) ; box->addWidget(label[0],0,1) ; box->addWidget(button[1],1,0) ; box->addWidget(label[1],1,1) ; QObject::connect( button[0], SIGNAL(clicked()), this, SLOT(setlabel ())); QObject::connect( button[1], SIGNAL(clicked()), this, SLOT(setlabel())) ; this->show(); } private slots: void setlabel () { label[0]->setText("Label1"); label[1]->setText("Label2"); } private: QGridLayout * box; QLabel * label[2]; QPushButton * button[2]; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); Hauptfenster fenster; return app.exec(); }
-
Kann mir denn da niemand helfen ?
-
bin jetzt glaub ich weiter gekommen zeigt zuminderst keinen Fehler mehr an
aber wenn man beim compilern denn compiler.Log anschaut steht da das:Compiler: Default compiler
Cleaning u.exe
Compiling main.cpp
Linking u.exe
Done.Also irgentetwas stimmt noch immer nicht.
bitte helft mir
-
Ich will nicht aufdringlich sein, aber es wäre wirklich nett, wenn sich mal jemand mein Problem ansehen würde
-
Poste es im Forum für guif
-
P.S.: Das Script muss im Programmverzeichnis von Dev-Cpp ausgeführt werden
Eine evtl. etwas späte Rückmeldung: es funktioniert auch mit Qt 4.3.2 (OpenSource), ActivePerl 5.8 und DevCpp 4.9.9.2 unter Windows 2000
-
Hallo,
ich hab jetzt Qt und MinGW installiert. Hab auch die notwendigen Schritte vollbracht damit ich jetzt über DEV C++ des ganze Programmieren kann.
Es hatte alles funktioniert. Ich hab das Hello World Programm geschrieben, doch als ich DEV C++ geschlossen hab und es wieder geöffnet habe, kam diese Fehlermeldung
D:\........\Makefile.win [Build Error][Projekt2.exe] Error1
nach einer Recherche kam ich zu diesem Link
Soweit so gut.
Jedoch muss ich jetzt jedes mal wenn ich Dev C++ schließe diesen Teil hier nochmal eingeben. Obwohl ich immer mit OK bestätige.kann mir jemand weiterhelfen??
+++++++++++++++++++++++++++++++++++++++++++
Um fortzufahren, wählen Sie "QT 4.0 Application" aus und erstellen ein neues Projekt. Danach sehen Sie ein kleines Beispielprogramm, das ein Fenster erstellt, in dem ein Button mit der Beschriftung "Servus Welt" erscheint. Wenn Sie das Programm jetzt kompilieren können, können Sie den nächsten Teil überspringen.So, jetzt müssen Sie das ganze auf Ihr System abstimmen. Dazu gehen Sie unter "Tools -> Compiler Options". Dort wählen Sie den Reiter "Directories" und sehen nach, ob die Qt-Include-Verzeichnisse richtig eingetragen sind. Wählen Sie den "C++ Includes"-Reiter aus und suchen nach den Qt-Verzeichnissen. Wenn dort keine sind, müssen Sie mit "Add" "QT\include" und alle Verzeichnisse in "QT\include" einzeln einfügen. So, dass es wie auf Bild 3 aussieht.
Bild3
Dasselbe müssen Sie noch mal unter "Project->Project Options" machen. Wenn das erledigt ist, müssen Sie den Reiter "Parameters" auswählen und dort unter Linker alle Verzeichnisse löschen, die sich auf Qt beziehen, und dann mit Hilfe von "Add Library or Object" in das Qt-Verzeichnis gehen und dort alle Dateien auswählen, die im lib-Ordner enthalten sind; auf "OK" klicken und nun sollten sie alle im Linkerfeld erscheinen. Dann klicken Sie auf "OK" und anschließend sollten Sie noch mal versuchen, das Programm zu kompilieren. Wenn es immer noch nicht funktioniert, sollten Sie erst einmal überprüfen, ob Sie irgendetwas übersprungen haben, oder im Forum posten.
++++++++++++++++++++++++++++++++++++++++++++++++++++++Kann mir jemand weiterhelfen??
Benutze Windows XP
-
Hallo,
habe Dev C++ mit Qt bisher erfolgreich auf meinem XP-Rechner verwenden können.
Jetzt möchte ich es unter Vista zum Laufen kriegen (Vista Home Premium,Qt 4.3.4, Dev C++ 4.9.9.2), allerdings scheitere ich schon bei der Ausführung der Installationshilfedatei im Dev C++ - Verzeichnis. Es droppt zwar kurz ein Fenster auf, doch in Dev C++ kann man kein "QT .. Applicartion" auswählen.Ist es möglich, dass dieses Programm unter Vista nicht korrekt arbeitet ?
-
mh, hab alles gemacht, bekomm aber ne seltsame fehlermeldung beim compliieren bzw. bei "make".
wenn ichs unter dev-c++ mache steht da folgendes:cannot find -lqtmaind ld returned 1 exit status [Build Error]
nutz ich den make befehl (unter QT 4.4.0 Command Prompt) kommt folgendes:
[...] H:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lqtmaind collect2: ld returned 1 exit status [...]
OS: WinXP SP2
QT Version: 4.4.0
bitte um hilfe t.t
-
terminator123 schrieb:
kann mir keiner helfen oder warum schreibt keiner?
wie bekomme ich die verdammten lib-dateien her???oder ist es hier üblich das man keine hilfe bekommt?
schaut langsam so aus!hallo an alle.
erstmal zu der Anleitung : ich finde diese anleitung nicht unbedingt toll wie manche es behauptet haben. zumal dass die Specificationen fehlen zb:
um welche version von qt die rede ist oder welche anforderungen fürs Pc notwendig sind. (windows 2000, xp?)
und wirklich in details ist er net eingegangen : zb fürs Instalieren des pathes
siehe 3-
hi terminator123 ich habe das selbe problem.
wie du merke ich auch dass hier keiner diesen wichtigen Fragen geantwortet hat.1- bei runterladen von qt version 4.4.1 gibt es kein assistant fürs installation man entpackt einfach die zipdatei
2- der programm execute.exe läuft zwar aber hält nicht
wie die ausgabekonsole hält wenn im programm "system(pause);" steht.
3-die teile für qmake ist auch net detailliert erklärt
was soll man unter "euerpath/bin " verstehen?
4- derjenige der so eine anleitung öffentlich zur verfügung stellt sollte bereit sein alle Frage richtig und wirklich zu beantworten.das war meine kontribution . wenn jemand mir helfen kann dann bitte schön
danke im vorraus
-
Welche Version ich benutzt habe weiß ich nicht mehr(sorry).
Wenn du auf das Datum des Artikel schaust kann man sich ausmachen welche Version das sein müsste(09 Feb 2006 ~> 4.2).Wobei ich für Kritik immer offen bin. Also zu deinen Punkten 1-3.
1. Es gibt einen Assistenten, undzwar wenn du die exe Datei runterlädst mit MinGW.
2. keine Ahnung wovon du redest
3. euerPath ist der Verzeichnispfad indem du QT installiert hast.
4. Komm erstmal auf den Teppich zurück, nur weil ich einen Artikel schreibe heist es nicht das ich mich für immer und ewig verpflichtet bin eure Fragen zu beantworten, damit das klar ist.Zu deinem Problem du solltest diese http://www.trolltech.com/download?target=http://ftp.ntua.gr/pub/X11/Qt/qt/source/qt-win-opensource-4.4.1-mingw.exe QT Version nehmen den dort ist QT schon Kompiliert. Dein und terminator123 Problem ist das ihr QT nicht Kompiliert.
-
Hallo,
ich habe mir Beschreibung zu Devc++ und Qt durchgelesen. Alles hat soweit geklappt, die exe Datei wurde in dem release Ordner erstellt. Habe diese dann auch nach der Beschreibung in Devc++ eingebunden. Das Problem ist nun das ich diese exe Datei nicht ausführen kann. Folgende Fehlermeldung kommt:
Die Anwendung konnte nicht richtig initialisiert werden (0xc015002)
Mein Betriebssystem ist Vista.
Vielleicht könnt ihr mir ja helfenMfg Gustav
-
hi,
ich kann ein normales fenster mit nem normalen widget und nem normalen button kompilieren. aber wenn ich ein OpenGl projekt kompielieren will sagt mir das dos-promt:
*glwidget.cpp:39:20: QtOpenGL: No such file or directory
...
glwidget.h:41:21: QGLWidget: No such file or directory
...
*
ich hab nachgeschaut, die headerdateien sind im include ordner des QT-Verzeichnises...
wie bekomm ich das hin?mfg rungaaz
-
Steht das in deinem .pro-file?
QT += opengl
-
Nein,
aber wenn ich es reinschreibe und dann kompiliere funzt es auch nicht...
jedenfalls ist es jetzt ein anderer error also er findet die QtOpenGL.hbtw: wie bringe ich QT dazu QT += opengl automatisch in die *.pro datei zu schreiben?
-
Rungaaz schrieb:
aber wenn ich es reinschreibe und dann kompiliere funzt es auch nicht...
jedenfalls ist es jetzt ein anderer error also er findet die QtOpenGL.hTja, die QtOpenGL.h gibt es auch nicht...
btw: wie bringe ich QT dazu QT += opengl automatisch in die *.pro datei zu schreiben?
Da wirst du kein Glück haben. Ein qmake -project erstellt dir ein minimales .pro. Alles andere muss man immer selber erledigen.
Vllt. ist das mit ner IDE ala QtCreator/Eclpise+QtPlugin anders, wenn du sowas aber nicht nutzt musst du das händisch machen.
-
hmm,
aber es gibt den ordner 'QtOpenGL' im QT verzeichnis...
also wenn ich in die *.pro datei schreibe und dann im dos-prompt 'make' aus
führe sehe ich folgendes:E:\Dev\Projekte-C++\QT\OpenGL>make e:\Programme\Qt\4.4.3\bin\qmake.exe -win32 -o Makefile OpenGL.pro mingw32-make -f Makefile.Debug mingw32-make[1]: Entering directory `E:/Dev/Projekte-C++/QT/OpenGL' g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT - DQT_DLL -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEED S_QMAIN -I"..\..\..\..\Programme\Qt\4.4.3\include\QtCore" -I"..\..\..\..\Program me\Qt\4.4.3\include\QtCore" -I"..\..\..\..\Programme\Qt\4.4.3\include\QtGui" -I" ..\..\..\..\Programme\Qt\4.4.3\include\QtGui" -I"..\..\..\..\Programme\Qt\4.4.3\ include\QtOpenGL" -I"..\..\..\..\Programme\Qt\4.4.3\include\QtOpenGL" -I"..\..\. .\..\Programme\Qt\4.4.3\include" -I"." -I"e:\Programme\Qt\4.4.3\include\ActiveQt " -I"debug" -I"." -I"..\..\..\..\Programme\Qt\4.4.3\mkspecs\default" -o debug\gl widget.o glwidget.cpp In file included from E:/Programme/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../. ./include/windows.h:50, from ../../../../Programme/Qt/4.4.3/include/QtCore/../../src/co relib/global/qt_windows.h:52, from ../../../../Programme/Qt/4.4.3/include/QtCore/qt_windows.h :1, from ../../../../Programme/Qt/4.4.3/include/QtOpenGL/../../src/ opengl/qgl.h:52, from ../../../../Programme/Qt/4.4.3/include/QtOpenGL/qgl.h:1, from ../../../../Programme/Qt/4.4.3/include/QtOpenGL/QtOpenGL:3 , from glwidget.cpp:39: E:/Programme/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:16 63: error: declaration of C function `LONG InterlockedCompareExchange(volatile L ONG*, LONG, LONG)' conflicts with ../../../../Programme/Qt/4.4.3/include/QtCore/../../src/corelib/arch/qatomic_win dows.h:387: error: previous declaration `long int InterlockedCompareExchange(lon g int*, long int, long int)' here E:/Programme/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:16 67: error: declaration of C function `LONG InterlockedDecrement(volatile LONG*)' conflicts with ../../../../Programme/Qt/4.4.3/include/QtCore/../../src/corelib/arch/qatomic_win dows.h:389: error: previous declaration `long int InterlockedDecrement(long int* )' here E:/Programme/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:16 68: error: declaration of C function `LONG InterlockedExchange(volatile LONG*, L ONG)' conflicts with ../../../../Programme/Qt/4.4.3/include/QtCore/../../src/corelib/arch/qatomic_win dows.h:390: error: previous declaration `long int InterlockedExchange(long int*, long int)' here E:/Programme/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:16 72: error: declaration of C function `LONG InterlockedExchangeAdd(volatile LONG* , LONG)' conflicts with ../../../../Programme/Qt/4.4.3/include/QtCore/../../src/corelib/arch/qatomic_win dows.h:391: error: previous declaration `long int InterlockedExchangeAdd(long in t*, long int)' here E:/Programme/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:16 76: error: declaration of C function `LONG InterlockedIncrement(volatile LONG*)' conflicts with ../../../../Programme/Qt/4.4.3/include/QtCore/../../src/corelib/arch/qatomic_win dows.h:388: error: previous declaration `long int InterlockedIncrement(long int* )' here mingw32-make[1]: *** [debug/glwidget.o] Error 1 mingw32-make[1]: Leaving directory `E:/Dev/Projekte-C++/QT/OpenGL' mingw32-make: *** [debug] Error 2
mfg rungaaz
-
da ich 'normale' Qt-Apps problemlos unter Dev-C++ kompilieren kann, habe ich versucht ein Qt-OpenGl-App zu kompilieren - funzt aber auch da nicht...
btw: wenn jemand das gleiche problem hatte wie ich, dass er bei jedem neuem QT-Projekt unter Dev-C++ in den projekt options die include-dirs und die library-dirs ändern musste um das projekt zu kompilieren, für den gibt es 2 lösungen:
1.)
-die librarys (alle *.a-dateien) in das verzeichnis '\Dev-Cpp\lib' kopieren.
-die includes (alle ordner die im verzeichnis '\QT\4.4.x\include' liegen) in das verzeichnis '\Dev-Cpp\include' kopieren.-oder-
2.)
in der datei 'QT4 Application.template' alle verzeichnisse bei 'Include' und 'Linker' ändern.
bei mir sieht das folgendermaßen aus:[Template] ver=1 Name=QT 4.0 Application IconIndex=0 Description=A basic template for QT 4.0 applications Catagory=Basic [Unit0] CName= CppName=main.cpp C= Cpp=QT4_Application_main.cpp.txt [Project] IsCpp=1 NoConsole=1 IsDll=0 UnitCount=1 Type=0 Name=QtApp Linker=E:/Programme/Qt/4.4.3/lib/libQt3Support4.a_@@_E:/Programme/Qt/4.4.3/lib/libQt3Supportd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtAssistantClient4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtAssistantClientd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtCLucene4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtCLucened4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtCore4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtCored4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtDesigner4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtDesignerComponents4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtDesignerComponentsd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtDesignerd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtGui4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtGuid4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtHelp4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtHelpd4.a_@@_E:/Programme/Qt/4.4.3/lib/libqtmain.a_@@_E:/Programme/Qt/4.4.3/lib/libqtmaind.a_@@_E:/Programme/Qt/4.4.3/lib/libQtNetwork4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtNetworkd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtOpenGL4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtOpenGLd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtScript4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtScriptd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtSql4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtSqld4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtSvg4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtSvgd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtTest4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtTestd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtUiTools.a_@@_E:/Programme/Qt/4.4.3/lib/libQtUiToolsd.a_@@_E:/Programme/Qt/4.4.3/lib/libQtWebKit4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtWebKitd4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtXml4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtXmld4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtXmlPatterns4.a_@@_E:/Programme/Qt/4.4.3/lib/libQtXmlPatternsd4.a_@@_ Includes=E:\Programme\QT\4.4.3\include\phonon;E:\Programme\QT\4.4.3\include\Qt;E:\Programme\QT\4.4.3\include\Qt3Support;E:\Programme\QT\4.4.3\include\QtAssistant;E:\Programme\QT\4.4.3\include\QtCore;E:\Programme\QT\4.4.3\include\QtDBus;E:\Programme\QT\4.4.3\include\QtDesigner;E:\Programme\QT\4.4.3\include\QtGui;E:\Programme\QT\4.4.3\include\QtHelp;E:\Programme\QT\4.4.3\include\QtNetwork;E:\Programme\QT\4.4.3\include\QtOpenGL;E:\Programme\QT\4.4.3\include\QtScript;E:\Programme\QT\4.4.3\include\QtSql;E:\Programme\QT\4.4.3\include\QtSvg;E:\Programme\QT\4.4.3\include\QtTest;E:\Programme\QT\4.4.3\include\QtUiTools;E:\Programme\QT\4.4.3\include\QtWebKit;E:\Programme\QT\4.4.3\include\QtXml;E:\Programme\QT\4.4.3\include\QtXmlPatterns Libs="E:\Programme\Dev-Cpp/lib"
ACHTUNG: bei euch ist wahrscheinlich der pfad zu QT und Dev-Cpp anders!
ich hoffe ich konnte vll. so manchen helfen
mfg rungaaz