Visual Studio 2012を使用して、WindowsでQtアプリケーションを作成しています。 QtアドインとカスタムビルドのstaticQt 5.0.2の配布を使用します。私は恐ろしい"Failed to load platform plugin windows"
アプリケーションを実行するたびにエラーが発生します。リンカーの入力に次を追加しました。
imm32.lib
winmm.lib
Ws2_32.lib
qtmaind.lib
Qt5Cored.lib
Qt5Guid.lib
Qt5Widgetsd.lib
最初は、「qwindowsd.lib」もリストに追加する必要があると考えましたが、それでも問題は解決しませんでした。アプリケーションを実行するために何をする必要がありますか?
解決しました。 this のおかげで、すべてを機能させることができました。次のライブラリを追加しました。
opengl32.lib
Qt5PlatformSupport.lib
qwindows.lib
また、次のコードを追加しました。
#include <QtPlugin>
Q_IMPORT_PLUGIN (QWindowsIntegrationPlugin);
動的ビルドの場合のみ:qwindows.dllを次のディレクトリに移動してください。
yourapp.exe
Qt5Core.dll
...
platforms/qwindows.dll
...
Pluginsディレクトリが欠落していることに注意してください! QT_BASE /.../ plugins/*から必要なすべてのフォルダーをバイナリと一緒に直接配置します。ところで:libEGL.dllは必要ありませんでしたが、私のアプリケーションにはほとんどGUIがありません。
私のソース: http://qt-project.org/forums/viewthread/27056/#122588
QtのMinGWバージョン(静的ではない)で同じエラーが発生しました:「プラットフォームプラグインウィンドウの読み込みに失敗しました」。
私にとっての解決策は、DLLを追加することでしたlibEGL.dll
およびlibEGLd.dll
。
環境変数を作成することもできます:
QT_QPA_PLATFORM_PLUGIN_PATH=<QT_BASE>\plugins\platforms
私の場合はQT_QPA_PLATFORM_PLUGIN_PATH=f:\Qt\5\5.4\msvc2013_opengl\plugins\platforms
したがって、インストール/コピーを避けるqwindows.dll
開発中(ディスクスペースを節約するために!?)。
このソリューションは、 GitHub および here にも言及されていました。
編集:申し訳ありませんが、これは静的ビルドでは効果的ではありません。ただし、ここでは[〜#〜] a [〜#〜]のままにします。
同様の問題がありました。
QT 5.2+にはwindeployq.exeがあることがわかりました
QT_DIRECTORY\5.2 ...\bin\windeployq.exe
プロジェクトのディレクトリ(アプリケーションの.exeがある場所)で使用します。そしてほら!すべてを自動的にリンクし、デプロイする準備ができました!
DLL、プラグインなどを自動的に取得します!
別の方法は、qtbase/plugins/platforms
ディレクトリをDebug/Releaseディレクトリに移動して、qwindowsd.dll
またはqwindows.dll
適切に。
解決策は、anacondaとpythonを使用してqtデザイナーを使用してGUIを作成し、anaconda、pkgs、qt.xxx、library、pluginsに移動してから、プラットフォームフォルダーをビルドにコピーする場合です。 program.exeが含まれるフォルダー
まさにこの問題。解決策は、デバッグ出力でQtを確認することです。このウィンドウは、ロードするすべてのDLLを示します。これらは、配布exeフォルダーに必要な場合があります。
VS2015とQt 5.9.3のバージョンで同じエラーが発生しました
Qt5Cored.dllとQt5Core.dll(アプリケーションのexe)をQtディレクトリの同じDLLに置き換えることでエラーを解決しました