在应用程序中加载QT LIB(不同的版本)

Loading Qt libs(different versions) inside an application

本文关键字:版本 LIB 应用程序 加载 QT      更新时间:2023-10-16

我们在QT 5.4中开发了我们的应用程序,该应用程序作为SDK(Dylib(与其他应用程序集成在一起。所有依赖的LIB都与SDK一起运输(QT 5.4.x二进制文件(。但是,当客户试图将我们的SDK集成到他的应用程序中时,我们遇到了一个问题。该应用程序正在利用具有QT 5.3.x依赖关系的组件。我们的SDK尚未与该应用程序合作。问题是由于平台中的" libqcocoa"共享的事实,这导致崩溃。

应用程序可以能够加载两个不同的QT二进制文件(带有/没有名称空间(?如果是,那么如何安全地护理?(应用程序在Mac中(

我还需要解决这样的观点,即可以独立更新使用不同QT版本的组件。一般遵循的最佳实践是什么?请建议。

您对QT的使用通常是实现细节。通过使用私人框架或静态链接QT来隐藏它。

另外,如果您需要与用户的QT进行互操作,请添加一个小的开源接口,将相关的QT API转发到您的代码中。大多数代码使用的QT很少,您会感到惊讶。该界面可能最多可能是几千行,您可以进行机加工。