2017-06-16 3 views
-1

Ich habe Qt App, die QQuickView verwendet, die qml mit qrc: path lädt, weil die qml vorkompiliert ist. Dies funktionierte bis Qt 5.7 gut, aber mit Qt 5.8 und Qt 5.9 stürzt die Anwendung im Retail-Modus ab. Wenn ich versuche, qml run-time direkt zu laden, indem ich den absoluten Pfad anstelle von qrc: path gebe, funktioniert es einwandfrei. Im Debug-Modus funktioniert sowohl die vorkompilierte als auch die nicht vorkompilierte Version gut. Ich bin nicht sicher, was sich in Qt 5.8 geändert hat, was das verursacht. Der Absturz stammt von QtQml.dll in einer Funktion, die qml zu laden scheint. Hat jemand anderes ein ähnliches Problem oder weiß, was falsch ist?Qt App stürzt beim Laden von qml im Einzelhandelsmodus ab, wenn die QML in Qt 5.8 und höher vorkompiliert wurde

+0

Sie könnten Ihren Code anzeigen – eyllanesc

Antwort

0

Leider konnte ich meinen Produktionscode nicht veröffentlichen. Ich habe versucht, eine Probe Qt Quick App zu repro zu schreiben und dabei habe ich das Problem herausgefunden. Das Hinzufügen des QT_NO_DEBUG-Compiler-Flags beim Kompilieren von .cpp, das von .qml/.js mithilfe von qtquickcompiler konvertiert wurde, verursachte den Absturz. Dies geschah nur, wenn ich den qtquick-Compiler verwendete, um qml/js zu kompilieren und das Build-Flag QT_NO_DEBUG zu verwenden.