9

私のexeは、プログラムしたコンピューター上で完全に正常に動作します。正常にデバッグし、正常にリリースし、exe ファイルを「リリース」フォルダーから新しいファイルに移動し、C:\pathtoqt\ming47_32\bin から必要な .dll ファイルを見つけても、正常に動作します。ただし、.dll ファイルが含まれている別のコンピューターでこのプログラムを実行しようとすると、実行できず、「アプリケーションがランタイムに異常な方法で終了するように要求しました」というメッセージが表示されます。

2 台の Windows 7 コンピューターと 1 台の Windows XP でこれをテストしました。依存関係ウォーカーを使用し、大量の .dll をダウンロードしましたが、それでも機能しませんでした。私はそれをすべてのdllに「見つかった」ステータスまたは「赤」ステータスにすることができました。

ビルド設定: http://puu.sh/3qTV3.png

Qt5.0.2、mingGW 4.7 32bit を使用しています。

私もこれに出くわしました.. http://puu.sh/3qU6j.png

4

5 に答える 5

10

多くの場合、これらのコンピューターには、プログラムが使用している必要な Qt ライブラリがありません。ここのチュートリアルを参照してください: http://doc.qt.io/qt-5/windows-deployment.html

もう 1 つの簡単なチェックは、Qt を別のコンピューターにインストールし、.exe を移動して、実行されるかどうかを確認することです。存在する場合、アプリケーションを正しくデプロイしていないことは確かです。

これは人々が見ているのとまったく同じ問題であるように思われるため、この役立つリンクを追加するように編集しました: https://bugreports.qt.io/browse/QTBUG-28766

于 2013-06-29T07:16:46.787 に答える
5

mingw でコンパイルされたアプリケーションを展開しています。これには、アプリケーションで使用される Qt-DLL に加えて、次の DLL ファイルを提供する必要があります。

icudt51.dll
icuin51.dll
icuuc51.dll
libstdc++-6.dll (eventually)
platforms/qminimal.dll
platforms/qwindows.dll
libgcc_s_dw2-1.dll (eventually)

これらは、SDK インストールにある mingw-directory にあります。

また、提供される DLL がコンパイラのバージョンに適合することも重要です。

于 2013-10-02T12:12:08.203 に答える
0

これは Windows のバグです。

https://bugreports.qt-project.org/browse/QTBUG-28766

具体的に、Qt はdepends.exe、開発マシンにインストールされているハードコードされた絶対パス、つまりc:\Qt\.....\plugins\platforms. 検索パスを変更するために使用できると思われる qt.conf というファイルがありますが、機能しません。

幸いなことに、Joost Bloemen はそのバグ レポートで回避策を見つけました。

...

#include <windows.h>
#include <QFileInfo>

int main(int argc, char* argv[])
{
    // Bug workaround. See https://bugreports.qt-project.org/browse/QTBUG-28766
    wchar_t dirpath[MAX_PATH];
    GetModuleFileName(0, dirpath, MAX_PATH);
    QFileInfo dir(QString::fromWCharArray(dirpath));
    QApplication::addLibraryPath(dir.absolutePath());

    QApplication a(argc, argv);

...

次に、EXE のサブディレクトリに を置きますqwindows.dll(必要ありませんqminimal.dllplatforms) 。(必要に応じて代わりに入れることができます。その後、上記.\plugins\platformsに変更dir.absolutePath()するだけです。dir.absolutePath() + "/plugins"

于 2013-11-26T10:24:41.897 に答える