Qtに奇妙な問題があります。最近、Qt 5.0.1 をダウンロードしました。そして今、「ビルド->開始」としてQtで開始したすべてのプロジェクトがうまく機能します。しかし、エクスプローラーからリリース版を起動しても効果はありません。そして、エクスプローラーからデバッグバージョンを起動すると、このエラーが発生します
どうしたの?
Qtに奇妙な問題があります。最近、Qt 5.0.1 をダウンロードしました。そして今、「ビルド->開始」としてQtで開始したすべてのプロジェクトがうまく機能します。しかし、エクスプローラーからリリース版を起動しても効果はありません。そして、エクスプローラーからデバッグバージョンを起動すると、このエラーが発生します
どうしたの?
アプリケーションの横に plugins ディレクトリをコピーするのを忘れたと思います。Dependency Walker はそれらをリストに表示しません。これは、Qt Core ライブラリによって実行時に読み込まれるためです。そのため、最終的な実行可能ファイルは、コンパイル時にこれらのプラグインのリンクまたは場所について何も知りません。
必要なもの、つまり「Windows」プラグインを正確に示しています。として、「platforms」フォルダーに配置する必要がありますqwindows.dll
。
Qt5 の公式 Windows 展開ガイドで詳細を読むことができますが、より実用的な情報についてはフォーラム (ここなど) を参照してください。
要するに、アプリケーション (動的にビルドされた Qt でコンパイルされたもの) を他のマシンで実行するには、多くのライブラリを含める必要があります。それらはすべてからコピーする必要があります
Qt_installation_folder/Qt_version/used_compiler/bin
&
Qt_installation_folder/Qt_version/used_compiler/plugins/
QMLプラグインはからコピーする必要があります
Qt_installation_folder/Qt_version/used_compiler/qml
&
Qt_installation_folder/Qt_version/used_compiler/imports
プロジェクトで使用されているのとまったく同じコンパイラから Qt ライブラリをコピーすることは非常に重要です。
以下に、説明付きの例(上記の2番目のリンクから借用)を示します。
ROOT FOLDER
│ YourApp.exe
│ D3DCompiler_43.dll // } \
│ libEGL.dll // } --> If you use Qt built with ANGLE support
│ libGLESv2.dll // } /
│
│ icudt49.dll // } \
│ icuin49.dll // } --> If you use Qt built with WebKit (Unicode support)
│ icuuc49.dll // } /
│
│ Qt5Core.dll // --> Basic Qt module, always needed
│ Qt5Gui.dll // --> If you use GUI module
│
│ Qt5Network.dll // } \
│ Qt5Qml.dll // } --> If you use QML
│ Qt5Quick.dll // } --> module
│ Qt5V8.dll // } /
│
│ Qt5Multimedia.dll // } --> If you use multimedia
│ Qt5MultimediaQuick_p.dll // } --> from QtQuick
│
├───platforms
│ qwindows.dll // Always needed for windows
│
├───QtMultimedia // If you import QtMultimedia 5.x
│ declarative_multimedia.dll
│ plugins.qmltypes
│ qmldir
│ Video.qml
│
├───QtQuick.2 // If you import Qt.Quick 2.x
│ plugins.qmltypes
│ qmldir
│ qtquick2plugin.dll