MinGW && Qt

  • C++

  • Chaosbohne
  • 2989 Aufrufe 8 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MinGW && Qt

    Servus

    Ich will bei mir Qt zum laufen bringen, jedoch bekomme ich immer diesen Fehler:
    mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory `D:/Uni/'
    g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\Qt.exe debug/main.o -L
    "c:\Qt\4.6.3\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
    c:\Qt\4.6.3\lib/libqtmaind.a(qtmain_win.o): In function `WinMain@16':
    C:\iwmake\build_mingw_opensource\src\winmain/qtmain_win.cpp:93: undefined reference to `_Unwind_Resume'
    C:\iwmake\build_mingw_opensource\src\winmain/qtmain_win.cpp:135: undefined reference to `_Unwind_Resume'
    c:\Qt\4.6.3\lib/libqtmaind.a(qtmain_win.o):C:\iwmake\build_mingw_opensource\src\winmain/../../include/QtCore/../../src/corelib/tools/qvector.h:482: unde
    fined reference to `_Unwind_Resume'
    c:\Qt\4.6.3\lib/libqtmaind.a(qtmain_win.o):C:\iwmake\build_mingw_opensource\src\winmain/../../include/QtCore/../../src/corelib/tools/qvector.h:483: unde
    fined reference to `_Unwind_Resume'
    c:\Qt\4.6.3\lib/libqtmaind.a(qtmain_win.o):qtmain_win.cpp:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
    collect2: ld returned 1 exit status
    mingw32-make[1]: *** [debug\Qt.exe] Error 1
    mingw32-make[1]: Leaving directory `D:/Uni/'
    mingw32-make: *** [debug] Error 2


    Also ich hab MinGW 5.1.6 ( neuste Version):
    File Manager - SourceForge Downloads

    Dann hab ich mir Qt 4.6.3 geladen( Qt libraries 4.6.3 for Windows ( also nur den Framework):
    Downloads — Qt - A cross-platform application and UI framework


    So dann hab ich noch die Umgebungsvariablen gesetzt und zwar so wie sie hier beschrieben sind:
    Stefans Webseite - Wiki: Qt installieren

    Also ich hab in Path den Eintrag C:\MinGW\bin;C:\Qt\4.6.3\bin ergänzt-
    Dann QTDIR mit C:\Qt\4.6.3\ und QTMAKESPEC win32-g++.

    Als Betriebssystem nutz ich Win 7 64.

    So und jetzt funktioniert es dennoch nicht, ich weiß absolut nicht was ich machen soll, ich hab zwar schon gegoogelt aber so richtig ne Lösung die man auch versteht hab ich noch nicht gefunden.

    Ich hoffe es liest sich mal jemand durch.

    mfg. Chaosbohne
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch
  • Ja ich hab schon gegoogelt aber irgendwie komm ich dennoch nicht zurecht.
    Das man Qt selbst kompilieren soll, hab ich auch schon gelesen aber ich kann damit nix anfangen. Ich weiß wie ich mein C++ oder C-File kompiliere aber Qt?
    Das weiß ich leider nicht.

    mfg. Chaosbohne
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch
  • Nein, da ich ja nur die Libs installiert habe.
    Hab jetzt gerade mal die SDK installiert, in denen ein MinGW mitgeliefert wird. Ich hab dort jetzt die Umgebungsvariablen neu gesetzt und zwar auf:
    C:\Qt\2010.04\mingw\bin;
    C:\Qt\2010.04\bin

    aber jetzt kann ich noch nichteinmalmehr in der Konsole qmake eingeben, da kommt die Meldung, dass er den Befehl nicht kennt.

    Edit: g++ bzw. gcc funktionieren jedoch einwandfrei.

    mfg. Chaosbohne

    Es gibt Neuigkeiten.
    Ich hab heute mal den MinGW und die Qt Libraries auf einem neu aufgesetzten Win7 System laufen lassen aber das Ergebnis blieb gleich, nix ging.

    Ich hab durch Zufall im Qt Ordner mal die Anwendung "Build Debug Libraries" ausgeführt, das lief jetzt ein paar Stunden und jetzt kann ich das Programm auch ohne Fehler compilieren.

    Code war:

    C-Quellcode

    1. #include <QApplication>
    2. #include <QPushButton>
    3. int main(int argc, char *argv[])
    4. {
    5. QApplication app(argc, argv);
    6. QPushButton hello("Hello world!");
    7. hello.resize(100, 30);
    8. hello.show();
    9. return app.exec();
    10. }
    Alles anzeigen


    Compiliert habe ich das mit:
    qmake -project
    qmake
    make

    Jetzt befindet sich das Ergebnis aber nicht im Releaseordner sondern im Debugordner. Hat das irgendwelche Konsequenzen? Oder kann ich davon ausgehen, dass jetzt alles einwandfrei funktioniert? Wo ist der Unterschied zwischen Release- und Debugordner?

    mfg. Chaosbohne

    Edit: Sorry Doppelpost :(
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Doppelpost ^^

  • Chaosbohne schrieb:

    Jetzt befindet sich das Ergebnis aber nicht im Releaseordner sondern im Debugordner. Hat das irgendwelche Konsequenzen? Oder kann ich davon ausgehen, dass jetzt alles einwandfrei funktioniert? Wo ist der Unterschied zwischen Release- und Debugordner?


    Ich würde vermuten das es, wenn es eine Anwendung namens "Build Debug Libraries" gibt, auch eine Anwendung gibt die "Build Release Libraries" heißt?

    Der Unterschied liegt meist in der Optimierung des codes durch den compiler und linker, sowie debug funktionalitäten die in einer Master / Release Version nichts verloren haben (Wie z.B. profiler, ggf. Debugausgaben in der Konsole, spezielle system logs etc).
    Wenn du die library files des debug und release builds vergleichst wirst du sehen das die Release versionen wensentlich kleiner sind. Die Release builds laufen idr. auch schneller als die Debug versionen. Meistens hast du in den Release versionen auch weniger Möglichkeiten mit dem Debugger durch einzelne Programmzeilen zu steppen (abhängig von den build settings)
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Ah Ok.

    Die Anwendung Build Release Libraries oder eine ähnlich klingende Beschreibung einer Anwendung gibts leider nicht. Da muss ich wohl damit leben, dass der meine Ergebnisse prinzipiell in den Debug-Ordner wirft.

    Wie bzw. mit was programmiert ihr denn graphische Oberflächen in Windows mit C++?
    (also WinApi, Qt etc. )

    mfg. Chaosbohne
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch
  • Chaosbohne schrieb:

    Die Anwendung Build Release Libraries oder eine ähnlich klingende Beschreibung einer Anwendung gibts leider nicht. Da muss ich wohl damit leben, dass der meine Ergebnisse prinzipiell in den Debug-Ordner wirft.

    MAn kann sich auch eigene Targets erstellen, da kannst du das Ausgabeverzeichnis angeben und optimierunen vornehmen und dir so eigene Release Builds erstellen, aber dafür wirst du dich etwas mehr mit der IDE auseinandersetzen müssen, da kann ich dir nicht helfen :)

    Chaosbohne schrieb:

    Wie bzw. mit was programmiert ihr denn graphische Oberflächen in Windows mit C++?
    (also WinApi, Qt etc. )

    Für kleine Tools benutze ich idr. QT wenn es sich nicht um kommerzielle Projekte handelt... Sonst die mfc oder WinApi. Aber meistens brauch ich garkeine GUI :)
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Ok danke Zerd.

    Ich hab mir jetzt mal nen Schinken zu Qt aus der Bibo geholt, welchen ich mir mal durchlesen werde und wenn ich nicht weiterkomme dann mach ich nochmal einen neuen Fred auf.
    Leider stand in dem Buch auch nix konkreteres über die Sache mit dem Debug bzw. Releaseordner.

    -Closed-
    mfg. Chaosbohne
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch