web-dev-qa-db-ja.com

Qt5Widgets.dllが欠落していますか?

Qt CreatorでQt5を使用しています。

私のプログラムは、Qt Creator自体から起動した場合は問題なく動作しますが、.exeファイルをdebugまたはreleaseフォルダーから取得すると、エラーのみが発生します。

The program can't start because Qt5Widgets.dll is missing from your computer.
Try reinstalling the program to fix this problem.

私はQtを使い始めたばかりですが、何が原因なのかわかりません。Googleからの適切な結果は見つかりませんでした。 Qt5(作成者を含む)の再インストールをすでに試みましたが、役に立ちませんでした。


ぼくの .projファイルは次のようになります。

TEMPLATE = app
TARGET = test

QT += \
    core \
    gui \
    widgets \

SOURCES += \
    main.cpp

と私 main.cppは次のようになります。

#include <QApplication>
#include <QWidget>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QWidget window();
    window.show();
    return app.exec();
}

そして、それが私が持っているすべてのコードです。

9

Qtでビルドされたアプリケーションを起動する場合、コードで使用されているQtモジュールが必要とするすべてのdll(Qt5Widgets.dll、Qt5Core.dllなど)をアプリケーションと同じフォルダーに置く必要があります。

このメソッドを実行する前にプログラムを実行する必要があるため、そのためにaddLibraryPath()を使用することはできません。また、同じフォルダに必須ライブラリが見つからない場合は実行できません。

使用するモジュールに応じて、Qt5プログラムを実行するために他のいくつかのライブラリも必要です。 Windows固有のものはここにリストされています QTと静的にリンクされたアプリはエラーを出します:プラットフォームプラグイン "windows"のロードに失敗しました

他のライブラリも必要になる場合があります。-GUIに画像ファイルをロードする場合は、plugins/qjpeg.dllなど。 -sqldrivers/qsqlite.dllなど、データベースを使用する場合(使用するドライバーのみが必要です)これらの場合、addLibraryPath()を使用して特定の場所を設定できますが、これを避け、できるだけ直接それらを配置するようにしてください。アプリケーションの近くの右側のサブフォルダにあります。

Web上の各Qt5モジュールに必要なライブラリーに関する情報がいくつかあります。お気に入りのプログラムインストールフォルダーを調べて、それらに必要なライブラリーを確認することもできます。

2
Antwane

以下が理由を理解するのに役立つことを願っています: http://doc.qt.io/qt-5/deployment.html

1
AnatolyS