Projekte mit Qt und Dev-cpp(MinGW) kompilieren



  • 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

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-136771-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html

    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 helfen

    Mfg 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.h

    btw: 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.h

    Tja, 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



  • Du hast Konflikte mit Funktions-Deklarationen 😉

    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
    

    In qatomic_windows.h Zeile 387 und winbase.h Zeile 16 wird InterlockedCompareExchange deklariert.
    K.A. was da los ist. Falsches mkspec? Hast du einen Header bearbeitet? Qt4 selber kompiliert?

    Was ich so gelesen hab ist ja dev-cpp recht veraltet (fehlerbehaftet?). Schau dir einfach mal Eclipse, Code::Blocks oder den neuen QtCreator an. Vllt. hast du da solche Probleme nicht mehr.

    Aber wirklich helfen kann ich dir da jetzt leider nicht. Hab keinen Windows-Rechner in der Nähe...

    Grüße
    Franz



  • also ich hab eig. keinen header bearbeitet und QT hab ich auch nicht selbst kompiliert.

    bei den umgebungsvariablen hab ich eine 'QTMAKESPEC'-variable aber kein 'mkspec'
    ich hab die variablen ganz nach diesem thread eingerichtet

    trozdem schonmal vielen dank!

    mfg Rungaaz



  • hi

    hatte grad auch diesen linker-Fehler.
    Kann es sein, dass du den Destruktor vergessen hast?

    grüße


Anmelden zum Antworten