最近、Windows上のQTベースのアプリケーションをQT 4.8からQT 5に移行しており、展開の問題に直面しています。アプリは変更されておらず、新しいQT5フレームワークでのみビルドされていることに注意してください。 VS2010ベースのQT5ライブラリを使用してビルドするために、ある程度努力しました。 Qt Creatorからアプリを正常に実行しました。
QT4で行ったように、必要なQTライブラリのセットをインストーラーに含めました。
テスト段階では、QT5アプリをクリーンマシンにインストールしました。開始されません。アプリケーションが起動しなかっただけでなく、エラーも出力しませんでした。
依存関係チェッカーを介してアプリを実行しました。また、欠落しているライブラリー依存関係はまったくありませんでした。
数日間の検索が進行せず、QTのバグに遭遇しました。
https://bugreports.qt.io/browse/QTBUG-28766
QT5では、予想されるQTライブラリ、msvcr100.dll、およびmsvcp100.dllに加えて、アプリケーションを次のものと一緒に出荷する必要があることがわかります。
platforms/qminimal.dll
platforms/qwindows.dll
同様に。ローカルのQT5ライブラリinstall @にあります:\ Qt5.0.0\5.0.0\msvc2010\plugins\platformsどこでも検索しましたが、ドキュメントでこの情報を見つけることができませんでした。
スタンドアロンの "Hello World" GUIアプリケーション(Qt sdk 5.0.1 mingw、Win7 x64)を実行するために。次のファイルをプログラムディレクトリに追加する必要があります。
qt 5.5 doc で利用可能なWindowsの完全な展開情報
より良い選択は、使用です: windeployqt.exe 。このツールは、application.exeのすべての依存関係を解決します。
はい、よく見分けられます。私はqt 5.0.2を使用して同じデプロイメントの問題を抱えていました。
同様に、これらの2つのdllがappsフォルダーにあるプラットフォームフォルダーがインストールされ、Vistaおよびwin7での展開が機能するようになりました。
依存関係ウォーカーは、必要なDLLとしてqwindows.dllまたはqminimal.dllに通知しないため、ここでは役立ちません。
Qtインストールのプラットフォームdllは、\ Qt\5.0.2\mingw47_32\plugins\platformsにあります。
win7およびqt5.1.1のメモ帳チュートリアル用
展開手順は次のとおりです。
*ビルドモードをデバッグではなくリリースに変更、 *ビルド、 *どこかに出力フォルダーを作成 desktop/notepad / * *出力フォルダーにファイルをコピー ファイルリスト: * from "workspace_home/build-notepad-xxx-Release/release" * notepad.exe * "qt_home/5.1.1/msvc2010/bin" から* icudt51.dll * icuin51.dll * icuuc51.dll * libEGL.dll * libGLESv2.dll * Qt5Core.dll * Qt5Gui.dll * Qt5Widgets.dll * * from "qt_home/5.1.1/msvc2010/plugins/platforms" * platforms(出力フォルダーにこのサブフォルダーを作成する必要があります) * qwindows.dll * * * * ..exeファイルを実行し、動作することを確認します、 * * OK *
Qtプラットフォームdllは、「qtbase」の「plugins」フォルダーにあります:C:\ Qt\5.0.0\qtbase\plugins\platforms
QMediaPlayerとQMediaPlaylistのインスタンスを使用しましたが、アプリケーションが起動しなくなり、次のエラーが表示されました。アプリケーションを再インストールすると、この問題が解決する場合があります。
何が起こっているのかを理解しようとして4日を費やした後、プラグイン、特にファイルwmfengine.dll
をロードするためのQt5Core.dllにハードコードされたパスがあることがわかりました。このハードコーディングされたパス(:\ Qt\5.5\msvc2010)を持たないようにQt5Coreをコンパイルしてください。
Qt5Core.dll
のハードコードされたパスがプラグインwmfengine.dll
の読み込みに失敗しました
空のqt.confは、アプリケーションと同じディレクトリにあり、Windows 7でQt5アプリを起動する際に問題が発生しているようです。削除してみてください。