2016-03-23 25 views
-1

Unsere Firma liefert derzeit 2 Qt-Anwendungen mit Qt5.6, aber in einigen Jahren wird es mehr geben (mit neueren Qt-Versionen). Das Problem ist also, wie man sie mit verschiedenen Qt-Versionen zusammenarbeitet? Wir werden nicht in der Lage sein, alle zuvor ausgelieferten Qt-Apps neu zu erstellen, vor allem, wenn es viele davon gibt. Ich denke nicht, dass es eine gute Idee ist, alle notwendigen Qt-Bibliotheken mit jeder App zu platzieren, da die Repository-Größe schnell wachsen wird. Und ich denke, es ist einfach nicht vernünftig, viele Qt-Dlls derselben Version an einem Ort zu haben. Solange ich weiß, .NET lösen solche Probleme verschiedener Versionen mit Assemblies Installer, aber ich denke nicht, dass es mir mit Qt helfen kann. Also jede Idee, wie ich es lösen könnte, wäre sehr geschätzt. DankQt-Bibliotheken unter Qt-Anwendungen teilen

UPD: Das System ist Windows-

+0

wir das gleiche Problem hatten. Zuerst hatten wir alle DLLs in einem zentralen Verzeichnis, aber es funktionierte nicht gut. jetzt versenden wir jede anwendung mit eigenen dlls (der speicherplatz ist egal, außer bei einigen holzsystemen) und die dlls gehen nicht in den repo – Zaiborg

+0

Es könnte die auflösung für uns sein, wenn wir 2-5 apps hätten, nicht mehr ... Aber wir haben viele demonstrative Apps für unsere Geräte, die klein und einfach sind, aber zusammen mit Geräten standardmäßig ausgeliefert werden müssen, auch wenn sie nicht viel genutzt werden. Wir können es uns also nicht leisten, jede solche App mit 50+ MB dll base zu versenden. –

+0

Sie könnten die Demo-Apps in einem Paket/Verzeichnis bündeln. so würde es alle die gleichen Binärdateien verwenden – Zaiborg

Antwort

0

Eigentlich eine Antwort ist ganz einfach, können Sie so lange eine Qt-Version (Binaries) versenden, da sie kompatibel sind binär. Mit jeder Version kündigen Qt Binärkompatibilität oder Nichtkompatibilität an. Wenn Sie aus irgendwelchen Gründen zu einer neueren Version wechseln und neue Anwendungen mit neuerer nicht kompatibler Version versenden müssen, können Sie eine neue Qt DLL-Kette versenden. Dies kann anders erreicht werden (Abhängig davon, wie Sie das Layout installieren), können Sie beispielsweise ein gemeinsames Verzeichnis mit Unterverzeichnissen basierend auf der Qt-Version haben, die Sie erweitern werden. (Natürlich werden Sie entsprechende WEGE festlegen müssen dann verschiedene Anwendungen ausgeführt werden):

app \ app \ app01 app \ app02 ... lib \ lib \ Qt5.6.1 lib \ Qt5.7.0

etc, dann werden Sie (zum Beispiel) haben Ihre eXE-Dateien zu verpacken wie .bat:

run.bat

SET PATH = .... \ lib \ Qt5.6.1 \ app01. exe

etc ..

es ist alles und Ziele installieren, hängt von Ihrem Layout

+0

Ich denke, es könnte helfen, danke. –