我的主要应用程序是由Qt V1编译的(例如4.7.4)。 (需要QtCore 4.7.4) 主应用程序使用的共享库由Qt V2编译(ex.4.8.2)。 (需要QtCore 4.8.2) 我无法重新编译库,我不想重新编译主应用程序。 是否可以使用多个版本的QtCore,QtGui等部署我的应用程序?
答案 0 :(得分:2)
是否可以使用多个版本的QtCore,QtGui等部署我的应用程序?
简答:不。
很长的回答:如果你事先计划好了,你可以通过dlopen
间接使用“使用Qt V2的共享库”(让我们调用int libFoo.so) dlsym
。如果你这样做了,你可以dlopen("libFoo.so", RTLD_LOCAL)
,然后“Qt V2”中的符号对主可执行文件不可见。这是一个非常不稳定的基础,但在理论上它应该有效。