[Development] 6 conflicting symbols between QtQuick 1 and 2
Harri Porten
porten at froglogic.com
Tue Apr 23 13:04:22 CEST 2013
Hi!
Don't ask why but we ran into the known[1] segfault caused by symbol name
conflicts between Qt5Qml and Qt5Declarative. Checking the symbol tables it
appears to because by 6 symbols only:
qmlContext(QObject const*)
qmlExecuteDeferred(QObject*)
qmlAttachedPropertiesObject(int*, QObject const*, QMetaObject const*, bool)
qmlAttachedPropertiesObjectById(int, QObject const*, bool)
qmlInfo(QObject const*)
qmlEngine(QObject const*)
At least for non-VS compilers the partially different return types (QQml*
vs. QDeclarative*) don't help with having a different symbol name
mangling. At the same time the functions cannot be used interchangeably
either. So I assume that this conflict was a simply copy&paste oversight
during the porting.
I have not checked the respective use cases of the functions but I guess
that they are internal to Qt despite being exported? Anyone sees a problem
with renaming the functions of v1 or v2 to make their names unique? If
not, we'll prepare a patch and present it.
To stress one point: we are not attempting to run both types of GUIs in a
single application. We'd just like to have the possibility to have the two
libraries co-exist and optionially be used.
Harri.
[1] https://bugreports.qt-project.org/browse/QTBUG-29584
More information about the Development
mailing list