Closed liesrock closed 7 years ago
when trying to ldd and grepping Qt:
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007efc9fd12000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007efc9f6c5000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007efc9c988000)
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007efc97bdb000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007efc976f6000)
Is there a clean way to update the Gui and the Core to QT5 on 14.04? Any idea @alessandrosettimi ?
It is a strange behavior since in the CMakelists.txt we just look for Qt5.
Bug replicated on another 14.04, I don't know if we can make it work on 14.04 with Qt5, I can make a Qt4-Qt5 compability. I didn't do it from the start because I understood that XBotStuff was going to be used on 16.04 only.
I agree that the XBotGUI needs to work in 16.04: do not start extra-work for 14.04 I will try to find an "hack" to avoid the crash.
On 16.04 grepping on ldd give me this result:
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007fd56b916000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fd56b3cd000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007fd568727000)
So no libQtGui.so.4 or libQtCore.so.4 are linked.
On 14.04 QT version 4.8.6 is installed ( 4.8.7 on 16.04)
Ubuntu 16.04 qmake is installed with the package qt4-qmake and qt5-qmake
/usr/lib/x86_64-linux-gnu/qt4/bin/qmake --version
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu
and
/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --version
QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu
Ubuntu 14.04 qmake is installed with the package qt4-qmake and qt5-qmake
/usr/lib/x86_64-linux-gnu/qt4/bin/qmake --version
QMake version 2.01a
Using Qt version 4.8.6 in /usr/lib/x86_64-linux-gnu
and
/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --version
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu
Given the situation, we need to be able to choose which qmake version to use in the CMakeLists (@asettimi any ideas about it?)
I tried to install libqt4 debug symbol and here is the backtrace of the segfault when I run XBotGUI:
Program received signal SIGSEGV, Segmentation fault.
QList (this=0x7ffff012a4f8 <QPrinterInfoPrivate::shared_null+24>)
at ../../include/QtCore/../../src/corelib/tools/qlist.h:121
121 ../../include/QtCore/../../src/corelib/tools/qlist.h: No such file or directory.
(gdb) bt
#0 QList (this=0x7ffff012a4f8 <QPrinterInfoPrivate::shared_null+24>)
at ../../include/QtCore/../../src/corelib/tools/qlist.h:121
#1 QPrinterInfoPrivate (name=..., this=0x7ffff012a4e0 <QPrinterInfoPrivate::shared_null>)
at painting/qprinterinfo_p.h:71
#2 __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at painting/qprinterinfo.cpp:35
#3 _GLOBAL__sub_I_qprinterinfo.cpp(void) () at painting/qprinterinfo.cpp:163
#4 0x00007ffff7dea10a in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7fffffffdbb8,
env=env@entry=0x7fffffffdbc8) at dl-init.c:78
#5 0x00007ffff7dea1f3 in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>,
l=<optimized out>) at dl-init.c:36
#6 _dl_init (main_map=0x7ffff7ffe1c8, argc=1, argv=0x7fffffffdbb8, env=0x7fffffffdbc8) at dl-init.c:126
#7 0x00007ffff7ddb30a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#8 0x0000000000000001 in ?? ()
#9 0x00007fffffffdef3 in ?? ()
#10 0x0000000000000000 in ?? ()
I need to investigate a little about this... However the crash is basically because the program is mixing qt4 and qt5 in the same application.
we could switch between qt4 and qt5 depending ros distro, as done here.
Ok I will give a try on a branch.
When launching it:
Program received signal SIGSEGV, Segmentation fault. 0x00007fffef631dfc in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4