Eu escrevi um aplicativo para Linux que usa Qt5.
Mas quando estou tentando iniciá-lo no linux sem o Qt SDK instalado, a saída no console é:
Failed to load platform plugin "xcb". Available platforms are:
Como posso consertar isso? Talvez eu precise copiar algum arquivo de plugin? Quando uso o Ubuntu com o Qt5 instalado, mas renomeio o diretório Qt, o mesmo problema ocorre. Então, ele usa algum arquivo do diretório qt ...
Eu encontrei o arquivo libqxcb.so
no diretório Qt SDK, mas colocá-lo /usr/lib
não ajuda.
plugins/platforms
que/usr/bin
? Oplatforms
diretório contém bibliotecas compartilhadas,/usr/bin
é usado para arquivos binários. O conteúdo de não deveriaplatforms
entrar/usr/lib
?/usr/bin/platforms
(não sei por quê). Portanto, esta resposta também funcionou para mim: stackoverflow.com/a/25437758/2249798Para quaisquer futuros leitores que se depararem com isso - antes de começar (perigosamente) a brincar com links simbólicos para bibliotecas compartilhadas, sugiro fortemente que você execute
export QT_DEBUG_PLUGINS=1
e, em seguida, execute o executável com falha novamente no Terminal. Leia a mensagem de erro real lançada pelo QT, pois nenhuma das soluções acima abordou a causa desse erro no meu caso.
Minha saída após ligar
QT_DEBUG_PLUGINS
foi:então pesquisei o
version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))
erro e encontrei a solução para isso , que resolveu o problema.fonte
Eu recebi essa mensagem de erro ao tentar executar o "Stellarium".
Com strace, descobri que o arquivo estava ausente
libxcb-xinerama.so.0
. Eu tive que reinstalarlibxcb-xinerama0
para fazê-lo funcionar:fonte
Tente instalar o
libqt5x11extras5
pacote com o comando:sudo apt-get install libqt5x11extras5
O nome pode ser diferente. Você pode descobrir isso pesquisando:
sudo apt-cache search qt5 | grep 'X11 extras'
e você obtém o nome do pacote como resultado:
fonte
Execute o ldd no executável do aplicativo para ver como ele resolve as dependências da biblioteca.
Também é uma leitura obrigatória para entender quais bibliotecas essenciais são necessárias no caso simples de aplicação de GUI:
http://qt-project.org/doc/qt-5/linux-deployment.html
fonte
No meu ubuntu digite:
Pode trabalhar
fonte
Para aqueles que ainda estão presos depois de tentar todas as outras opções disponíveis na Internet, pode procurar o caminho exato no qual esse notório
libqxcb.so
está sendo pesquisado, para abrir / carregar peloQt
aplicativo (VirtualBox-5.2.8
é oQt
aplicativo no meu caso), usando o ferramenta de rastreamento . No meu caso, desde que eu estava construindo aVirtualBox-5.2.8
partir de sua origem, ele estava procurandolibqxcb.so
no local abaixo:"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/"
e não nosdefault
caminhos da biblioteca, noQt
caminho da instalação, etc. Portanto, nenhuma dasldd
verificações e outras soluções funcionou. E a configuração tambémQT_DEBUG_PLUGINS=1
não produziu nenhum registro extra.Executando strace no binário VirtualBox que construí usando Clang / LLVM no Ubuntu 17.10 x86_64:
Esse foi o meu
hitting-the-nail-on-its-head
momento, e eu criei asymlink
partir da instalaçãoQt5.10.1
doplatforms
diretório mencionados abaixo:"...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"
para o caminho que é procurado"...VirtualBox-5.2.8/out/linux.amd64/release/bin/"
. Assim,VirtualBox-5.2.8
construído a partir da fonte no Linux (Ubuntu 17.10 x86_64
) usandoClang/LLVM
, finalmente lançado com sucesso !Na verdade, outra coisa interessante aqui é que, eu ter construído
VirtualBox-5.2.8
inteiramente usandoClang/Clang++/LLVM
onUbuntu 17.10 x86_64
após esforço substancial - paraFreeBSD
, já há uma porta para a construção deVirtualBox
usarclang
, mas para Linux, é fortemente dependente doGCC
que eu vi e, portanto, teve um monte de esforço para obter até este ponto, para poder construir com êxito aVirtualBox-5.2.8
partir de sua origem usandoClang/Clang++/LLVM
onUbuntu 17.10 x86_64
for targetLinux/AMD64
(Ubuntu 17.10 x86_64
) e iniciá-lo com sucesso depois de resolver outros problemas junto com esse notóriolibqxcb.so
.Felicidades.
fonte
É assim que resolve alguns problemas quando estou executando o emulador no Ubuntu 18.04.
Adicione as seguintes linhas no final do arquivo. Eu instalo meu SDK do Android em
/opt/Android/Sdk
fonte
Executando isso resolveu para mim:
fonte
Parece que pode haver várias coisas diferentes faltando por trás disso. No meu caso (Debian 9.7), QT_DEBUG_PLUGINS = 1 ajudou a rastrear as bibliotecas ausentes e
$ sudo apt-get install libxcb-render-util0 libxcb-image0 libxcb-keysyms1 libxcb-icccm4
resolveu o problema.
fonte
Crie o arquivo qt.conf no seu projeto e adicione:
https://doc.qt.io/qt-5/qt-conf.html
fonte
Copie
plugins/platforms/libqxcb.so
da suaqt
instalação paraplatforms/libqxcb.so
o diretório do aplicativo.fonte