Сегфаултинг приложений 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
, Я до сих пор не знаю причину проблемы.