Ich versuche, ein Distributionsverzeichnis mit meiner Anwendung zu machen. Ich habe mehrere Qt-DLLs in dieses Verzeichnis kopiert, und das Programm scheint zu funktionieren, mit einer Ausnahme: es scheint kein SQL-Plugin für SQLite zu finden. Durch das Kopieren von qtsqlite.dll in das Verzeichnis kann meine Anwendung keine SQLite-Dateien öffnen oder erstellen. Was muss die Struktur des Directories sein oder welche zusätzlichen Dateien müssen kopiert werden, damit das Programm die Datenbank lesen kann?Welche Qt-DLLs sollte ich kopieren, um mein Programm eigenständig zu machen?
Antwort
können Sie depends.exe verwenden, um genau zu sehen, was die Abhängigkeiten Ihrer Exe sind und sicherstellen, dass sie alle enthalten sind.
Lesen Sie auch this page über qt-Plugins. Sie sollten in einem bestimmten Verzeichnis namens "plugins" sein und nicht im Hauptverzeichnis mit allen anderen dlls.
Höchstwahrscheinlich hängt die qtsqlite.dll selbst von ursprünglichen SQLite-DLLs ab, die Sie wahrscheinlich ebenfalls kopieren müssen.
Vergessen Sie nicht, eine LGP-Lizenzkopie in Ihre Distribution aufzunehmen sowie Verweise auf die Original-Download-Ressourcen der von Ihnen eingeschlossenen Bibliotheken und deren Quellen. Um mit dem Gesetz zu bleiben :-)
Dank des Links @shoosh zur Verfügung gestellt, konnte ich das Problem beheben. Ich musste das Unterverzeichnis sqldivers im Distributionsverzeichnis mit der qsqlite.dll-Bibliothek erstellen. Aber das war nur der erste Schritt. Haben Sie Tipps und Ressourcen zum Erstellen eines vollständigen Windows-Installationsprogramms? Ich bin hauptsächlich ein Linux-Programmierer, daher ist mir dieser Bereich unbekannt.
Vielleicht NSIS ist ein guter Ausgangspunkt für Sie: http://nsis.sourceforge.net/ Es ist Open Source und skriptfähig. Gut für Linux Programmierer :-D – ypnos
- 1. Welche Größe Chunks sollte ich Dateien kopieren?
- 2. Wie ich mein Programm zu einem Hintergrundprozess machen kann
- 3. Mein Python-Programm effizienter machen
- 4. Welche Datenstruktur sollte ich verwenden, um mehrwertige Daten zu verarbeiten?
- 5. Welche Ausnahme sollte ich werfen, um einen internen Fehler in meinem Programm zu signalisieren?
- 6. Welche Methode sollte ich verwenden, um mein AngularJS manuell zu starten?
- 7. Was sollte mein Python-Programm enthalten, um kompiliertes Haxe-Objekt zu verwenden?
- 8. Wo sollte ich Einstellungen für mein Javascript-Programm speichern?
- 9. Welche WPF-Steuerung sollte ich für mein Fenster verwenden?
- 10. Sollte ich Linux Shell Script oder Java-Programm machen?
- 11. Welche Maven-Artefakte sollte ich verwenden, um PowerMock zu importieren?
- 12. Welche Struktur sollte ich verwenden, um diese Objekte zu speichern?
- 13. Welche Datenstruktur sollte ich verwenden, um Abhängigkeit zu verfolgen?
- 14. Welche Tools sollte ich verwenden, um meine Website zu erstellen?
- 15. Sollte ich den Code ändern, um ihn testbarer zu machen?
- 16. Ändern der Threadpriorität, um mein Programm und den Computer reaktionsfähiger zu machen
- 17. Wie sollte mein Programm unter "Programme (x86)" installieren?
- 18. Welche Art von Programm sollte auf dem Kunden-PC ausgeführt werden, um mit MySQL zu kommunizieren
- 19. Welche Abhängigkeiten sollte ich injizieren?
- 20. Ich führe mein Programm in Java aus
- 21. Wo sollte mein Win32-Programm seine Dateien behalten?
- 22. Um zu kopieren oder nicht zu kopieren
- 23. Wie werden Funktionstasten zugeordnet, um mein Programm zu kompilieren?
- 24. Wo sollte ich mein Domänenmodell platzieren, um Modellzuordnungscode anzuzeigen?
- 25. Welche sollte ich verwenden? (Leistung)
- 26. Welche Form sollte ich verwenden, um eine Website
- 27. Welche Sprache sollte ich verwenden, um Tasten auf einer Tastatur zu codieren?
- 28. Ich möchte meinen eigenen C# Debugger machen - wie würde man das machen? Welche Werkzeuge sollte ich verwenden?
- 29. Welche sollte welche erben?
- 30. Welche Technik sollte verwendet werden, um 2d Kollisionsprüfungen zu bereinigen?
Standardmäßig verwendet die Anwendung ihr Startverzeichnis als Plugins-Verzeichnis; Sie müssen die Treiber in einen Basisklassenverzeichnisnamen eingeben: z. B. app_dir/sqlrivers. – dwj