Seite 1 von 1

Anfänger sucht Rat - Debug Build Startet nicht

Verfasst: 29. März 2011 22:23
von Darklink2000
Hi Leute,

Ich bin grade dabei mir ein bischen QT anzueignen.
Ich habe mir nun ein Programm geschrieben was ich zum Lernen von Englisch Vokabeln benutzen will (noh zwar nicht fertig aber es kommt momentarn kein Compiler Fehler)

Nun habe ich (unter Windows - ob das bei Linux auch so wäre hab ich noch nicht probiert) das Problem das die Auszuführende Datei im Debug Ordner Abschmiert...
Ich bekam als erstes Fehlermeldungen das die und die und die Datei fehlt. Diese habe ich dann aus den QT Ordner rausgesucht und hinzugefügt in den Debug Ordner...
Nun sagt er mir beim Ausführen das er eine Zeile in einer dieser Datein nicht finden kann

Es gibt ja von diesen dlls immer 3 Stück...
Eine im QT/Desktop/...../lib
Eine im QT/Desktop/...../bin
und
eine im QT/Simulator/...../lib

hat das vieleicht damit was zu tun das ich aus den Richtigen verzeichnis die brauch?

Verfasst: 30. März 2011 13:33
von odt
Hallo Darklink

Zu Unterscheiden: Debug und Release. Eine "selbsständige" Applikation solltes Du normalerweise im Release builden und ausliefern. Dann wäre noch die Zielplattform zu unterscheiden: Windows (Desktop) oder Natel (Simulator). Im lib solltest Du eigentlich keine dll's haben, vermutlich Du hast Du Qt selbst compiliert.

Es wäre noch hilfreich, was die genaue Fehlermeldung ist.

Details zum Deployen findest Du in...
http://doc.qt.nokia.com/latest/deployment.html
http://doc.qt.nokia.com/latest/deployment-windows.html

Also, im Qt Creator unten links die Erstellung auf Release ändern, ctrl+b und +r, dann die exe und dll's zusammenstellen.

Viele Grüsse, Reto

Verfasst: 30. März 2011 16:35
von Darklink2000
Also bei mri ist Desktop bei den Projekteinstellungen drinne also das hier:
"QT4.7.7 for Desktop - MinGW 4.4 (QT SDK)"

Jetzt hatte ich beim Erstellen mal auf Release umgeschalltet. Und versucht den Release zu starten...

Als erstes:
Wurde die Datei "libgcc_s_dw2-1.dll" nicht gefunden
Die hab ich dann den Release Ordner der Applikation hinzugefügt.

Dann:
Wurde in der Datei "QtCore4.dll" etwaS nicht gefunden.

Fehlermeldung (jetzt):
"Der Prozedur Einsprungspunkt "_Z10qShapeItemP13HB_ShaperItem" wurde in der DLL "QtCore4.dll" nicht gefunden"

Verfasst: 30. März 2011 23:48
von odt
Ein Einstiegspunkt ist die "Verbindung" zwischen der lib und der dll. D.h. die aus der dll exportierten und damit aufrufbaren Symbole (Prozedur, Methode). Wenn die qtcore.lib nicht mit der qtcore.dll übereinstimmt gibts solche "komischen" Link-Fehler. Die hatte ich mal im Zusammenhang mit einer Library, die ich im VS2009 kompilieren musste, und im MiniGW einbinden wollte. D.h. es wäre möglich, dass die lib und dll nicht korrspondieren. Aber da Du hoffentlich nicht so in die Tiefe gingst... Mir zumindest sagt das ShaperItem nichts (hat wohl nichts mit GraphicsView zu tun). Hast Du schon mal nach "Der Prozedur Einsprungspunkt wurde in der DLL "QtCore4.dll" nicht gefunden" gegoogelt? Da gibt's diverse Tipps, dependency-walker etc etc.

Ich würde den ganzen Ablauf mal einem qt-Example, z.b. widgets/analogclock testen. (.pro öffnen, (Hey, Einstellungen auf Qt4 kontrollieren, nicht das im Hintergrund auf eine andere Qt-Installation zeigt) auf Desktop-Release wechseln, CTRL-R, Sample schliessen, qt-Beenden, dann im ../analogclock-build-desktop die MiniGW-Requirements und die dll aus qt/bin kopieren, exe)

Wenn es funktioniert, hast Du in Deinem Projekt ein "Problemchen", .pro abgleichen.
Wenn es auch mit dem mitgelieferten Beispiel nicht geht, hmmm, ist irgendwas mit Deiner Konfiguration nicht gut oder Du verwendest die falschen lib's oder dll's. An der Stelle würde ich wohl mal mit einem frischen Qt (die Alten vorher löschen) beginnen.

Verfasst: 1. April 2011 16:16
von Darklink2000
Ich werds mal versuchen