在单个应用程序中使用多个版本的qt-libs

时间:2012-12-22 19:16:57

标签: qt shared-libraries

我的主要应用程序是由Qt V1编译的(例如4.7.4)。 (需要QtCore 4.7.4) 主应用程序使用的共享库由Qt V2编译(ex.4.8.2)。 (需要QtCore 4.8.2) 我无法重新编译库,我不想重新编译主应用程序。 是否可以使用多个版本的QtCore,QtGui等部署我的应用程序?

1 个答案:

答案 0 :(得分:2)

  

是否可以使用多个版本的QtCore,QtGui等部署我的应用程序?

简答:不。

很长的回答:如果你事先计划好了,你可以通过dlopen间接使用“使用Qt V2的共享库”(让我们调用int libFoo.so) dlsym。如果你这样做了,你可以dlopen("libFoo.so", RTLD_LOCAL),然后“Qt V2”中的符号对主可执行文件不可见。这是一个非常不稳定的基础,但在理论上它应该有效。