Cannot mix incompatible Qt libraries
В последнее время на разных Ubuntu Intrepid Ibex я стал довольно часто сталкиваться с ошибкой
Очень сильно этим грешит Skype. Но в последнее время такая проблема стала возникать для приложений KDE4.
Данная ошибка, как правило, вызывается одной из следующих причин:
- В системе установлены библиотеки Qt разных версий. Проверяется это очень просто:
[-]View Code Bashdpkg -l | grep qt | grep -r "^[ih]"
Если в выдаче присутствуют библиотеки разных версий (третья колонка), значит, именно это вызвало проблему. Удаление старых библиотек, как правило, решает проблему.
В этом случае, например, конфликта нет:
[-]View Code (Unknown Language)ii libqt4-dbus 4.4.2-0ubuntu2 Qt 4 D-Bus module
ii libqt4-designer 4.4.2-0ubuntu2 Qt 4 designer module
ii libqt4-network 4.4.2-0ubuntu2 Qt 4 network module
ii libqt4-opengl 4.4.2-0ubuntu2 Qt 4 OpenGL module
ii libqt4-qt3support 4.4.2-0ubuntu2 Qt 3 compatibility library for Qt 4
ii libqt4-script 4.4.2-0ubuntu2 Qt 4 script module
ii libqt4-sql 4.4.2-0ubuntu2 Qt 4 SQL module
ii libqt4-svg 4.4.2-0ubuntu2 Qt 4 SVG module
ii libqt4-xml 4.4.2-0ubuntu2 Qt 4 XML module
ii libqtcore4 4.4.2-0ubuntu2 Qt 4 core module
ii libqtgui4 4.4.2-0ubuntu2 Qt 4 GUI module
ii libstrigiqtdbusclient0 0.5.11-1 library for writing D-Bus clients for Strigi Desktop Se
ii qt4-qtconfig 4.4.2-0ubuntu2 Qt 4 configuration tool - Если используется 64-битная платформа, проблема может возникать из-за того, что загрузчик пытается использовать 32-битные библиотеки. Определить это можно при помощи
ldd
.Например,
[-]View Code Bashldd /usr/bin/ktorrent | grep '/lib32/'
# libQtDBus.so.4 => /lib32/libQtDBus.so.4 (0x00007f191cce7000)В данном случае при загрузке libQtDBus загрузчик будет загружать её 32-битную версию (из
/lib32
) вместо 64-битной (из/lib
).Я использую следующее решение (оно не идеальное, но работает):
[-]View Code Bashsudo -i
echo /lib32 > /etc/ld.so.conf.d/libQtDBus32.conf
echo /usr/lib > /etc/ld.so.conf.d/libQtDBus64.conf
ldconfig - Наконец, если подобная проблема возникает при использовании Skype на 64-битной платформе, то проще всего скачать static version. Очень сильно экономит нервы