Durch den Qt Creator erstelltes Programm nicht extern (außerhalb der IDE) startbar



  • Hey,

    habe nach längerer stressiger Zeit mal wieder Zeit für Qt / c++ und bin bei einem alten leidigen Problen angekommen.
    Das Programm an sich ist fertig, nur kann ich es leider nicht außerhalb der IDE starten.
    Klar, ich muss die DLL's in den Ordner packen, aber das Problem ist, dass die DLL's aus dem Qt/bin Ordner z.T. scheinbar nicht funktionieren.

    Ich habe das Programm gestartet und immer wieder die fehlenden DLL's, die durch die Fehlermeldung als nicht existent gemeldet werden, in den Ordner getan.
    Das ging soweit gut, doch irgendwann kam folgender Error:
    http://www.fotos-hochladen.net/uploads/fdfdz6a4kul97d.png

    Das sind die DLL's, die ich bisher eingebunden habe:
    http://www.fotos-hochladen.net/uploads/fdfdu5f9cy3kwa.png

    Dependency Walker sagt Folgendes:
    http://img5.fotos-hochladen.net/uploads/fgfgkz08bm5iyf.png

    Allerdings kann ich damit nicht wirklich etwas anfangen.

    Hinweis: Alle DLL's, die ich bisher eingebunden habe, sind aus dem Ordner:
    C:\Qt\Tools\QtCreator\bin

    Danke im Voraus für Hilfe.

    Grüße



  • da fehlen DLLs!
    Hier ist alles beschrieben:
    http://qt-project.org/doc/qt-5/windows-deployment.html#creating-the-application-package

    Und nimm auf keinen Fall die DLLs aus dem Tools-Verzeichnis sondern dem qmake.exe-Verzeichnis, bei mir ist das (MinGW-Kompiler):
    C:\Qt\Qt_5.3\5.3\mingw482_32\bin



  • Danke, das hat mich schon etwas weiter gebracht.
    Allerdings verwundert es mich, dass im mingw\bin Verzeichnis keine solchen DLL's vorhanden sind, die vom Programm vorausgesetzt werden.
    Ebenso ist keine qmake.exe vorhanden.
    http://img5.fotos-hochladen.net/uploads/fgfg36ht0qekjw.png

    Grüße



  • Das liegt daran, das Du immernoch Dateien im Tools Verzeichnis suchst. Schau Dir mal den Pfad in Deinem Screenshot genau an. Softwaremaker hat Dir doch schon die richtige Richtung vorgegeben. Ich selbst teste das was ich mache ab und an in einer Windows 7 VM um zu sehen ob es auch auf einem "nakten" Windows, also ohne Entwicklungssystem läuft. Wenn Du die DLL's aus dem richtigen Verzeichnis nimmst klappt das dann auch. Auf meinem System ist das z.B. folgender Pfad:

    C:\Qt\5.3\mingw482_32\bin



  • Hey,

    danke für die Antwort.

    Auf den Trichter kam ich zwischenzeitlich auch, allerdings existiert im 5.3 Ordner kein mingw Ordner:
    http://img5.fotos-hochladen.net/uploads/ghgh2jvp1a9tqy.png

    Ich gehe auch davon aus, dass es installiert ist, weil es von Qt ja auch als Compiler vorgeschlagen wird.

    Grüße



  • Wenn ich Deinen Screenshot so ansehe, gehe ich mal davon aus das Du mit dem MSVC2012 Compiler Dein Programm kompilierst. Denn ein MinGW-Kit ist dort nicht zu sehen. Dann musst Du natürlich die zum MSVC2012 passenden DLL's nehmen. Bei mir wäre das z.B. für den MSVC2010 folgender Pfad:

    C:\Qt\5.3\msvc2010_opengl\bin



  • Da du anscheinend noch nicht so viel Erfahrung damit hast hier eine kurze Erläuterung:
    - es gibt verschiedene Kompiler-Hersteller (MinGW, Microsoft) bzw. diese haben unterschiedliche Versionen (MS: 2010, 2012, ...)
    - die Qt-DLLs und das eigene Programm müssen mit dem gleichen Kompiler kompiliert sein
    - Qt liefert bereits mit "MinGW" und "Microsoft Visual Studio" kompilierte Qt-DLLs aus (deshalb die "große" Auswahl beim Download), falls du einen anderen Kompiler verwendest, musst du Qt selber kompilieren, das dauert aber mehrere Stunden
    - du verwendest anscheinend den Kompiler "Microsoft Visual C++ 2012", also musst du auch das entsprechende Qt MSVC2012 herunterladen und installieren (der Microsoft-Kompiler ist da nicht enthalten!)
    - du kompilierst dein Programm und packst die passenden Qt-DLLs dazu
    Achtung: die Qt-Tools sind ja schon kompiliert und dabei muss nicht unbedingt der gleiche Kompiler verwendet worden sein der dem Download entspricht, deshalb nicht die DLLs aus dem Tools-Verzeichnis nehmen (z.B. im Qt-MinGW-Paket sind die Tools mit MSVC und nicht mit MinGW kompiliert)



  • Ich persönlich würde sowieso den MSVC2012 bzw. den MSVC2013 nicht verwenden. Diese lassen sich ja leider nichtmehr stand alone über das SDK installieren, sondern nur noch indem man das entsprechende Visual-Studio installiert. Beim MSVC2010 geht das noch prima mit einer stand alone Installation über das SDK. Ich verwende bei mir den MSVC2010 und den MinGW4.8.2. Und auch nur diese Qt-Kits habe ich installiert.



  • Vielen Dank für die Mühe, auch beim Erklären. 😉
    Habe das Prinzip nun etwas besser verstanden und das Programm lauffähig gemacht, vielen Dank.

    Grüße


Anmelden zum Antworten