3

この図に示すように、qt からコンパイルしたコードであるプログラム TransitTalker.exe を実行しようとしています。

https://www.dropbox.com/s/ypgklrm4uschri5/filecontents.png

(画像を投稿するのに十分な評判がないことに注意してください。そのため、画像へのリンクを提供しました)

私の問題:

  • 私のプログラムは、qt クリエーターの外では実行されません。

  • TransitTalker.exe を実行しようとすると、次のメッセージが表示されます。

私はすでに何をしましたか:

  • 必要な dll を追加しました (GPSVC.dll と IESHIMS.dll を除く)。依存関係ウォーカーと呼ばれるプログラムを通じて、必要な dll を見つけました。

  • プログラムが qt クリエーター内でエラーなしで実行されることを確認しました。

主な質問: 「このアプリケーションは、ランタイムに通常とは異なる方法で終了するよう要求しました。詳細については、アプリケーションのサポート チームにお問い合わせください。」という ランタイム メッセージが表示されるのはなぜですか。. プログラム TransitTalker.exe を qt スタンドアロン アプリケーションとして実行できるようにしたいと考えています。

qt Creator 5.0.1 (MINGW 47_32) を実行しています。同じコンピューターに Visual Studio 2012 もあります。

4

3 に答える 3

4

これが解決済みとしてマークされていることは知っていますが、同じ問題がありlibEGL.dll、Qt バイナリ ディレクトリからコピーして解決しました。なんらかの奇妙な理由で依存関係チェックに表示されなかったので、長いデバッグログを調べて、実際にロードされたライブラリを確認する必要がありました。(そしてそれはあなたのイメージにはないので、おそらく同じ問題です)

于 2013-03-20T02:45:14.147 に答える
1

アプリケーションが機能するようになりました。私がそれをどのように行ったかについては、以下の解決策を参照してください。

ドミトリーは、MinGW GCC4.7がQt5.0.1と互換性がないことは正しいです。これは、この投稿を通じて確認しました。

私の解決策:MinGWGCC4.4を使用するQtCreator4.8SDKをインストールしました。QtCreatorの外部でアプリケーションの実行可能ファイルを実行することができました。

于 2013-03-03T19:37:11.903 に答える
0

私の推測では、Qt はある種の起動時のアサーション エラー (QApplication コンストラクターなど) を持っており、メッセージを標準出力 (または標準エラー出力?) に出力してから、「異常な方法でアプリを終了しています」ということです。

その場合は、そのエラー メッセージの内容を確認する必要があります。これを行う 1 つの方法は、次のコードを main() の先頭に一時的に追加することです。

AllocConsole();
freopen("conin$",  "r", stdin);
freopen("conout$", "w", stdout);
freopen("conout$", "w", stderr);

...その後、プログラムを再コンパイルして再度実行します。実行すると、MS-DOS シェル ウィンドウが表示されます。Qt が問題を抱えている理由に関する情報メッセージが表示されていないか確認してください。

于 2013-02-19T04:40:05.050 に答える