2017-07-29 3 views
0

Ich möchte mein Qt-Programm bereitstellen. Ich benutze qmake, um das Makefile aus meiner .pro-Datei zu generieren. Und dann renne ich mingw32-make, und schließlich mingw32-make install, um notwendige dlls in den Ausgabeordner zu kopieren. Ich kopiere 9 DLLs, alle im selben Ordner (Qt/5.8/mingw53_32/bin). Alle von ihnen werden ohne ein Problem kopiert, außer für libstdC++ - 6.dll.MinGW kopiert libstdC++ - 6.dll nicht in den Ausgabeordner, obwohl die Adresse korrekt ist.

Ich habe das generierte Makefile überprüft, um zu sehen, ob etwas falsch geschrieben wurde. Ich habe auch die Wege und alles überprüft. Ich mache das gleiche für alle 9 Dateien, aber nur libstdC++ - 6.dll hat ein Problem mit dem Kopieren.

Die folgenden Zeilen stammen von meinem Makefile-Installationsziel. Ich habe den Kopierzielort abgedeckt.

-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\Qt5Core.dll <COPY_TARGET> 
-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\Qt5Gui.dll <COPY_TARGET> 
-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\Qt5OpenGL.dll <COPY_TARGET> 
-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\Qt5PrintSupport.dll <COPY_TARGET> 
-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\Qt5Svg.dll <COPY_TARGET> 
-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\Qt5Widgets.dll <COPY_TARGET> 
-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\libgcc_s_dw2-1.dll <COPY_TARGET> 
-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\libwinpthread-1.dll <COPY_TARGET> 
-$(INSTALL_FILE) C:\Qt\5.8\mingw53_32\bin\libstdc++-6.dll <COPY_TARGET> 

Ich möchte noch einmal sagen, dass C:\Qt\5.8\mingw53_32\bin\libstdc++-6.dll existiert.

Jede Hilfe würde sehr geschätzt werden.

+1

Off-Topic: Beachten Sie, dass Sie windeployqt.exe verwenden können, um den Qt-DLLs zu kopieren und benötigte Plugins. –

+0

Danke Nikos. Wenn ich mich selbst einsetze, verwende ich windeployqt. Aber ich bereite ein Projekt vor, damit die Leute es benutzen können. Sobald ich alle notwendigen dlls kenne, versuche ich sie in den Ausgabeordner zu kopieren, indem ich qms INSTALLS-Tag in meiner .pro-Datei verwende. – Deniz

Antwort

1

Die Zeichen "+" sind manchmal in Windows-Dateinamen problematisch, so schließen einen Pfad zur Datei in Anführungszeichen:

-$(INSTALL_FILE) "C:\Qt\5.8\mingw53_32\bin\libstdc++-6.dll" <COPY_TARGET> 
+0

vielen dank, das hat es gelöst. Ich würde einen Weg brauchen, um qmake zu zwingen, diese Anführungszeichen selbst zu setzen, weil ich nicht jedes Mal ins Makefile gehen und den ganzen Weg nach unten scrollen möchte, um diese Änderung vorzunehmen. Kennst du einen Weg, wie ich qmake dazu bringen kann, es automatisch zu machen? Ich habe versucht, die Anführungszeichen in die .pro-Datei zu setzen, aber sie fügt sie nicht zum Makefile – Deniz

+0

@Deniz Versuch, es als '$$ shell_quote (" libstdC++ - 6.dll ")' in der qmake-Projektdatei zu schreiben. –

+0

@NikosC. Kein Glück. Ich habe alle möglichen Kombinationen ausprobiert, aber es hat nicht funktioniert. – Deniz

Verwandte Themen