Qt Plattformunabhängigkeit?



  • Hallo,
    ich hoffe das ich mich mit dieser Frage nicht lächerlich mache, aber ich bin was C++ und Qt betrifft noch sehr unerfahren.
    Auf Qt bin ich aufmerksam geworden, da es als plattformunabhängig beschrieben wird, d.h. das der Code eines Programms ohne Änderung auf allen unterstützten Betriebssystemen funktioniert.
    Von der Seite https://www.proggen.org/doku.php?id=frameworks:qt:basic:connections
    habe ich das Beispiel: Signale und Slots selbst Implementieren, nachgestellt.
    Unter Linux(Ubuntu) läuft es ohne Probleme, aber unter Windows funktioniert das Beispiel nicht. Habe versucht mit Qt Creator den Quelltext neu zu kompilieren, allerdings gibt es da schon Probleme bei #include <QApplication>, da der Compiler diese nicht findet. Habe dann auf #include <QtWidgets/QApplication> erweitert, aber trotzdem funktioniert es nicht.
    Beim erstellen des Projektes kommt als erste Fehlermeldung:C:\Users\....\Documents\Qt\counterbutton\main.cpp:9: Fehler: undefined reference to `_imp___ZN12QApplicationC1ERiPPci'

    Ich hoffe jemand kann mir helfen.



  • Das ist kein fehler des compilers sondern des linkers.
    Scheinbar hast du die benötigten Qt Bibliotheken nicht angegeben.

    Ich sehe du verwendest QtCreator wie hast du das projekt erstellt?



  • 1. "Datei"-"Neu"-"Anderes Projekt"-"Leeres qmake_Projekt"
    2. Wählen des Namen und Angaben zum Pfad
    3. Auswahl Kits
    4. Projektverwaltung-"Abschließen"
    5. In der Editoransicht Rechtsklick auf Namen des Projekts "Hinzufügen"-"C++"-"C++-Quelldatei"
    6. Pfad und Name(main.cpp)
    7. Projektverwaltung-"Abschließen"

    Schritt 5 bis 7 für die Header-Datei und die Quellcode-Datei der Klasse
    wiederholen

    8. Quellcode schreiben
    9. Makefile anlegen "qmake ausführen"
    10. "Projekt "..." erstellen"



  • Erstell mal ein projekt mit widgets Unterstützung.
    Und schau dir mal dann das qmake file an.
    Kurz gesagt du musst qmake sagen dass du ein projekt mit QWidget support haben möchtest.

    Dadurch werden die entsprechenden Bibliotheken automatisch als Abhängigkeit verwendet und beim linken des Programms angegeben



  • Danke für die Hilfe!!!
    Funktioniert jetzt einwandfrei. 🙂


Anmelden zum Antworten