7 votos

Programa[Digikam] elige mal qt lib y se bloquea

Corro Ubuntu 14.04 de 64 bits. Digikam utilizado para el trabajo, pero recientemente ha dejado de funcionar.

Me preguntaba si alguien podría ayudarme en mi trabajo una manera de resolver este problema.

He tenido una respuesta de la Digikam lista de correo para decir que esto no es realmente una Digikam problema, pero un problema en mi sistema cuando hay algún conflicto con Qt4 y dlls de qt5. El seguimiento de pila de abajo muestra Digikam de estrellarse en un dlls de qt5 lib, pero sólo es programado con Qt4.

Alguna sugerencia?

apt-cache policy digikam
digikam:
  Installed: 4:3.5.0-0ubuntu10
  Candidate: 4:3.5.0-0ubuntu10
  Version table:
 *** 4:3.5.0-0ubuntu10 0
        500 http://au.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
        100 /var/lib/dpkg/status


gdb digikam
Reading symbols from digikam...Reading symbols from /usr/lib/debug/.build-id/89/8c66e5a3a2b8dce7156f7e8c1698e4bd29ef9d.debug...done.
done.
(gdb) catch throw
Catchpoint 1 (throw)
(gdb) run
Starting program: /usr/bin/digikam 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
__strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:286
286 ../sysdeps/x86_64/multiarch/../strcmp.S: No such file or directory.
(gdb) bt
#0  __strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:286
#1  0x00007fffdf31609e in QMetaType::registerNormalizedType(QByteArray const&, void (*)(void*), void* (*)(void const*), void (*)(void*), void* (*)(void*, void const*), int, QFlags<QMetaType::TypeFlag>, QMetaObject const*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007fffdeb0b7b7 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#3  0x00007ffff7dea13a in call_init (l=<optimised out>, argc=argc@entry=1, argv=argv@entry=0x7fffffffdf38, env=env@entry=0x7fffffffdf48) at dl-init.c:78
#4  0x00007ffff7dea223 in call_init (env=<optimised out>, argv=<optimised out>, argc=<optimised out>, l=<optimised out>) at dl-init.c:36
#5  _dl_init (main_map=0x7ffff7ffe1c8, argc=1, argv=0x7fffffffdf38, env=0x7fffffffdf48) at dl-init.c:126
#6  0x00007ffff7ddb30a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#7  0x0000000000000001 in ?? ()
#8  0x00007fffffffe29c in ?? ()
#9  0x0000000000000000 in ?? ()
(gdb) quit
A debugging session is active.

    Inferior 1 [process 10315] will be killed.

Quit anyway? (y or n) y

La salida de la herramienta qtchooser

$ qtchooser -l
4
5
default
qt4-x86_64-linux-gnu
qt4
qt5-x86_64-linux-gnu
qt5
$ qtchooser -print-env
QT_SELECT="default"
QTTOOLDIR="/usr/lib/x86_64-linux-gnu/qt4/bin"
QTLIBDIR="/usr/lib/x86_64-linux-gnu"

Sé que no hay libs llamado Qt4* en /usr/lib/x86_64-linux-gnu aunque he instalado (y volver a instalar) la mayoría de los libqt4 paquetes de los principales repo.

1voto

Minsuk Song Puntos558

Así que el problema era que yo tenía opencv instalado de origen sentado en /usr/local. Desinstalar y eliminar los archivos restantes de /usr/lib y /usr/include corregido el enlace roto a qt y reinstalar digikam arreglado todo.

La sugerencia fue comprobar el instalado manualmente las cosas sentado en /usr en caso de que uno de ellos está en conflicto.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: