Ontem eu estava desenvolvendo um aplicativo Qt4 e, de repente, o programa se fragmentaria na inicialização. Eu decidi atualizar para o Qt5 e isso resolveu o problema.
No entanto, notei que todos os aplicativos Qt4 parecem ter o mesmo comportamento. Um exemplo é 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)
Posso dizer que é Qt devido a este . Eu estava ligando para o Qt4 naquele programa, e o segfault parecia o mesmo no depurador.
(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.
Meu aplicativo de amostra e simplescreenrecorder
mostram o mesmo no depurador.
O que tentei
- Reinstalando todas as bibliotecas libqt4
Eu posso dizer que é algo a ver com o Qt4 e não com qualquer outra versão do Qt, ou seja, o Qt5, porque o meu programa executando o Qt5 funciona corretamente, assim como qualquer outro aplicativo do Qt5.
Estou executando o Ubuntu 17.04.
EDIT : No momento estou removendo completamente todas as bibliotecas libqt4, veja se tenho sorte.
EDIT 2 : funcionou.