Сегфаултинг приложений Qt4 при запуске

Вчера я разрабатывал приложение Qt4, и внезапно программа запускалась при запуске. Я решил обновить до Qt5, и это решило проблему.

Однако я заметил, что все приложения Qt4, похоже, ведут себя одинаково. Примером является simplescreenrecorder,

$ ldd /usr/bin/simplescreenrecorder | grep Qt
    libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007fd558703000)
    libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007fd55820f000)

Я могу сказать, что это Qt из-за этого. В этой программе я звонил только на Qt4, и в отладчике segfault выглядел так же.

(gdb) run
Starting program: /usr/bin/simplescreenrecorder 

Program received signal SIGSEGV, Segmentation fault.
elf_dynamic_do_Rela (skip_ifunc=<optimized out>, lazy=0, nrelative=<optimized out>, relsize=662856, reladdr=<optimized out>, map=0x7ffff7fbd908) at do-rel.h:112
112 do-rel.h: No such file or directory.

И мой пример приложения и simplescreenrecorder показать то же самое в отладчике.


Что я пробовал

  • Переустановка всех библиотек libqt4

Я могу сказать, что это как-то связано с Qt4, а не с любой другой версией Qt, а именно с Qt5, потому что моя программа, работающая на Qt5, работает правильно, как и любые другие приложения Qt5.


Я использую Ubuntu 17.04.

РЕДАКТИРОВАТЬ: В настоящее время я полностью удаляю все библиотеки libqt4, посмотрите, повезет ли мне.

РЕДАКТИРОВАТЬ 2: Это сработало.

1 ответ

Решение

Полное удаление библиотек sudo apt-get remove libqt4* и установка снова sudo apt-get install libqt4* работал.

Кажется, что между этим и sudo apt-get install --reinstall, Я до сих пор не знаю причину проблемы.

Другие вопросы по тегам