Wczoraj pracowałem nad aplikacją Qt4 i nagle program zaczął się segregować przy starcie. Postanowiłem uaktualnić do Qt5 i to rozwiązało problem.
Zauważyłem jednak, że wszystkie aplikacje Qt4 mają takie samo zachowanie. Przykładem jest 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)
Mogę powiedzieć, że jest z Qt, ponieważ ten . Dzwoniłem tylko do Qt4 w tym programie, a segfault wyglądał tak samo w debuggerze.
(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.
Zarówno moja przykładowa aplikacja, jak i simplescreenrecorder
ta sama w debuggerze.
Co próbowałem
- Ponowna instalacja wszystkich bibliotek libqt4
Mogę powiedzieć, że ma to coś wspólnego z Qt4, a nie z żadną inną wersją Qt, mianowicie Qt5, ponieważ mój program z Qt5 działa poprawnie, podobnie jak inne aplikacje Qt5.
Używam Ubuntu 17.04.
EDYCJA : W tej chwili całkowicie usuwam wszystkie biblioteki libqt4, zobacz, czy będę miał szczęście.
EDYCJA 2 : Udało się.
źródło