32

最近、Windows 上の QT ベースのアプリケーションを QT 4.8 から QT 5 に移行しましたが、展開で問題が発生しました。アプリは変更されていないことに注意してください。新しい QT5 フレームワークでビルドしただけです。少し努力して、VS2010 ベースの QT5 ライブラリでビルドすることができました。そして、Qt Creator からアプリを正常に実行しました。

QT4 で行ったように、必要な QT ライブラリのセットをインストーラーに含めました。

テスト段階で、クリーンなマシンに QT5 アプリをインストールしたとき。それは始まりません。アプリケーションが起動しないだけでなく、エラーも出力されませんでした。

依存関係チェッカーを通じてアプリを実行しました。また、欠落しているライブラリの依存関係はまったくありませんでした。

4

8 に答える 8

37

何日も検索を続けた結果、QT のバグに遭遇しました。

https://bugreports.qt.io/browse/QTBUG-28766

QT5 では、予想される QT ライブラリ、msvcr100.dll、および msvcp100.dll に加えて。アプリケーションを次のように出荷する必要があることがわかりました。

platforms/qminimal.dll
platforms/qwindows.dll

同じように。これは、ローカルの QT5 ライブラリ インストール @: \Qt5.0.0\5.0.0\msvc2010\plugins\platforms にあります。どこでも検索しましたが、ドキュメントでこの情報を見つけることができませんでした。

于 2013-01-03T17:31:23.767 に答える
15

スタンドアロンの「Hello World」GUI アプリケーション (Qt sdk 5.0.1 mingw、Win7 x64) を実行します。次のファイルをプログラム ディレクトリに追加する必要があります。

  1. プラットフォーム/qwindows.dll
  2. D3DCompiler_43.dll
  3. icudt49.dll
  4. icuin49.dll
  5. icuuc49.dll
  6. libEGL.dll
  7. libgcc_s_sjlj-1.dll
  8. libGLESv2.dll
  9. libstdc++-6.dll
  10. libwinpthread-1.dll
  11. Qt5Core.dll
  12. Qt5Gui.dll
  13. Qt5Widgets.dll

qt 5.5 docで入手可能な Windows の完全な展開情報

于 2013-04-01T10:00:22.770 に答える
7

より良い選択は次の使用です: windeployqt.exe。このツールは、application.exe のすべての依存関係を解決します。

于 2015-06-30T23:33:35.617 に答える
3

はい、よくわかりました。qt 5.0.2 を使用して同じ展開の問題を抱えていました。

同様に、apps フォルダーにこれら 2 つの dll を含む platform フォルダーがインストールされ、vista と win7 での展開が機能するようになりました。

Dependency Walker は、必要な dll として qwindows.dll または qminimal.dll を通知しないため、ここでは役に立ちません。

Qt インストールのプラットフォーム dll は、\Qt\5.0.2\mingw47_32\plugins\platforms にあります。

于 2013-05-12T17:45:45.780 に答える
2

Qt プラットフォーム dll は、「qtbase」の「plugins」フォルダーにあります: C:\Qt\5.0.0\qtbase\plugins\platforms

于 2013-02-01T21:25:08.677 に答える
1

QMediaPlayer と QMediaPlaylist のインスタンスを使用したところ、アプリケーションが起動しなくなり、次のエラーが表示されました: このアプリケーションは、Qt プラットフォーム プラグイン "windows" を見つけられなかったか、ロードできなかったため、起動できませんでした。アプリケーションを再インストールすると、この問題が解決する場合があります。

何が起こっているのかを把握するために 4 日間を費やした後、Qt5Core.dll にプラグイン、特にファイルをロードするためのハードコーディングされたパスがあることがわかりましたwmfengine.dll。このハードコードされたパス (:\Qt\5.5\msvc2010) がないように Qt5Core をコンパイルしてください。

WinDiff のスクリーンショット

プラグインの読み込みにQt5Core.dll失敗したハードコーディングされたパスwmfengine.dll

于 2016-08-03T22:31:05.023 に答える
1

アプリケーションと同じディレクトリにある空のqt.confが原因で、Windows 7 で Qt5 アプリを起動できないようです。削除してみてください。

于 2013-01-22T23:45:54.060 に答える