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) 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 [email protected] http://lists.qt-project.org/mailman/listinfo/interest
