Qt5 Static Build yields Falha ao carregar o plugin da plataforma “windows”

Estou escrevendo um aplicativo Qt no Windows usando o Visual Studio 2012 . Usando o Qt Add-in e uma distribuição estática personalizada do Qt 5.0.2 . Eu estou correndo para o temido "Failed to load platform plugin windows" sempre que eu executo o aplicativo. Eu adicionei o seguinte à input do vinculador:

 imm32.lib winmm.lib Ws2_32.lib qtmaind.lib Qt5Cored.lib Qt5Guid.lib Qt5Widgetsd.lib 

No começo eu pensei que talvez eu devesse adicionar “qwindowsd.lib” àquela lista, mas isso não resolveu o problema. O que preciso fazer para executar meu aplicativo?

Somente para construção dinâmica: certifique-se de mover o qwindows.dll para o seguinte diretório:

 yourapp.exe Qt5Core.dll ... platforms/qwindows.dll ... 

Note que o diretório de plugins está faltando! Você coloca todas as pastas necessárias de QT_BASE /…/ plugins / * diretamente junto com seus binários. BTW: Eu não precisava de libegl.dll, mas meu aplicativo quase não tem GUI.

Minha fonte: http://qt-project.org/forums/viewthread/27056/#122588

Eu resolvi isso. Graças a isso , consegui que tudo funcionasse. Eu adicionei as seguintes bibliotecas:

 opengl32.lib Qt5PlatformSupport.lib qwindows.lib 

Eu também adicionei o seguinte ao meu código:

 #include  Q_IMPORT_PLUGIN (QWindowsIntegrationPlugin); 

Eu tive o mesmo erro com a versão MinGW do Qt (não estático): “Falha ao carregar janelas de plugin de plataforma”.

A solução para mim foi adicionar as DLLs libEGL.dll e libEGLd.dll .

Uma alternativa é copiar o qtbase/plugins/platforms para os diretórios Debug / Release, deixando apenas qwindowsd.dll ou qwindows.dll conforme apropriado.

Você também pode criar uma variável de ambiente:

QT_QPA_PLATFORM_PLUGIN_PATH=\plugins\platforms

que no meu caso se torna: QT_QPA_PLATFORM_PLUGIN_PATH=f:\Qt\5\5.4\msvc2013_opengl\plugins\platforms

Assim, evitando instalar / copiar qwindows.dll durante o desenvolvimento (para economizar espaço em disco !?).

Essa solução também foi mencionada no GitHub e aqui .

EDIT: Desculpe, isso não é eficaz em uma compilation estática. Mas vou deixar meu A aqui.

Ok, eu tive problema semelhante.

Eu descobri que QT 5.2 + tem windeployq.exe

QT_DIRECTORY \ 5.2 … \ bin \ windeployq.exe

Use-o com o diretório do seu projeto (onde o .exe do seu aplicativo é). E voilà! Vinculou tudo automaticamente e pronto para implantar!

Ele irá obter as DLLs, Plugins etc … automaticamente!

Eu exatamente isso probelm. A solução é verificar o Qt na saída de debugging. Essa janela informa todas as DLLs que ele carrega. Estes são os que você pode precisar na sua pasta exe de distribuição.

A solução é, se você estiver usando o anaconda e python para fazer um gui usando o qt designer, então vá para anaconda, pkgs, qt.xxx, biblioteca, plugins, e copie a pasta de plataformas para a pasta de construção que contém o seu programa.exe

Eu tive o mesmo erro com o VS2015 e a versão do Qt 5.9.3

Eu resolvi o erro, substituindo o Qt5Cored.dll e Qt5Core.dll (onde o exe do meu aplicativo) com as mesmas DLLs no diretório Qt