在 Qt 应用程序之间共享 Qt 库

Sharing Qt libraries among Qt applications

我们公司发布了 2 个 Qt 应用程序,目前使用的是 Qt5.6,但过一段时间会有更多(使用更新的 Qt 版本)。所以问题是,如何让它们与不同的 Qt 版本一起工作?我们将无法重建之前发布的所有 Qt 应用程序,特别是如果有大量应用程序的话。我认为为每个应用程序放置所有必要的 Qt 库不是一个好主意,因为存储库的大小会快速增长。而且我认为在一个地方拥有许多相同版本的 Qt dll 是不明智的。据我所知,.NET 使用程序集安装程序解决了不同版本的问题,但我认为它不能帮助我使用 Qt。因此,我将不胜感激任何关于如何解决它的想法。谢谢

更新:系统是Windows

其实答案很简单,只要二进制兼容,您就可以发布一个 Qt 版本(二进制文件)。对于每个版本,Qt 都会宣布二进制兼容性或不兼容性,因此如果出于某种原因您需要切换到较新的版本并使用较新的不兼容版本发布新应用程序,您可能希望发布新的 Qt DLL 链。这可以通过不同的方式实现(取决于您的安装布局),例如,您可以拥有一个公共 lib 目录,其中包含基于您将扩展的 Qt 版本的子目录。 (当然你需要适当的 PATHS 设置然后 运行 不同的应用程序):

应用\ app\app01 app\app02 ... 库\ lib\Qt5.6.1 lib\Qt5.7.0

etc,那么你将不得不(例如)将你的 exe 文件包装到 .bat 中,如:

run.bat

设置路径=....\lib\Qt5.6.1\ app01.exe

等..

这完全取决于您的安装布局和目标