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
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