25.10.2016, 17:26, "Olivier B." <perso.olivier.barthel...@gmail.com>: > I encountered some issues trying to link a library that uses Qt 5.6 > into a program that uses Qt 5.5 on linux (providing the 5.5 libs to > the linker when the lib needs 5.6 :P ) > > This resulted in lots of undefined reference to someQtSymbol()@Qt_5 > > Indeed, doing 'objdump -CT' on my 5.5.1 Qt5Core.so gives something like > 000000000032fc00 g DF .text 0000000000000018 Base > QLibrary::metaObject() const > > And objdump on the 5.6 version gives > 0000000000313e80 g DF .text 0000000000000018 Qt_5 > QLibrary::metaObject() const > > Those two were custom built with the same script/tools/machine. So i > am assuming the change in "Base" -> "Qt_5" is induced by a change in > the sources? (i could find no "Qt_5" string in the 5.6 sources package > that could be related to this)
mkspecs/features/qt_module.prf in qtbase is doing that You can disable symbol versioning with CONFIG+=no_linker_version_script in mkspec. > A few questions come to my mind (Obviously i am not asking for a magic > solution to link a lib compiled for 5.6 with 5.5.1, it's more out of > curiosity) > > - Won't that cause binary compatibility issues? Or is the link of > Base -> Qt_5 allowed, just not the opposite? I don't really know much > about that column of objdump > > - Why was this introduced in 5.6 and not at the start of Qt5? > Shouldn't it be called QT_5.6 if it prevents link with older Qt5 > libraries? Or should it already be present in my Qt5.5 libraries, in > function of some qt configure option that i forgot to add before > build? > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Regards, Konstantin _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest