2017-05-30 16 views
0

Qtで構築された新しいアプリケーションを展開する際に重大な問題が発生しています。プログラムはQt Creator(すべてのビルド:debug、profile、release)から起動すると正常に動作しますが、起動時に.exeをダブルクリックするとクラッシュします。エラーダイアログが次のメッセージをポップアップ表示されます:??\ Users \ユーザーSDT1 \:defaultTypeFor @ QTimer @@ CAQtアプリケーションを展開することができません

AW4TimerType @ Qtの@@ H @ Zがダイナミックリンクライブラリ Cで を見つけることができませんでしたDocuments \ Scanner \ Scanner_deploy \ Scanner.exe

私はQt 5.8.0を使用していますが、MSVC2015_64ビットでプロジェクトをビルドしています。 \ Qtの\ 5.8 \ msvc2015_64の\ビン

dinamically Qtライブラリをリンクする:私は

Cからwindeployqt.exeを使用しています。

この問題は、以前のconnect構文(マクロSIGNALおよびSLOT)から新しい機能ポインタに移動してから起きました。私もQMetaObject::invokeMethodの代わりにQTimer::singleShotを使い始めました。そして、驚くことではないが、エラーはQTimerです。しかし、このプログラムはQt Creatorの内部からうまく機能しており、正しいDLLを得るためにwindeployqtを使用しているので、問題がどこにあるのか分かりません。

また、私の.exeがエラーメッセージの「ダイナミックリンクライブラリ」と呼ばれているのはなぜですか?それは.exeです!

答えて

0

私は問題を解決しましたが、何がうまくいかないのかまだ分かりません。Path変数がQtバージョン5.7のフォルダ(私が持っている唯一のバージョン)を指していました。私はそれを5.8に変更し、リブートして再デプロイしましたが、うまくいきませんでした。その後、ビルドフォルダを削除し、再構築して再デプロイしました。だから問題はビルドにあった。

これがどうなるかわかりません。 Qt 5.7へのパスを元に戻し、いくつかのテストを行うために再起動しました。問題は再び現れましたが、Pathがビルドにどのような影響を与えるのか分かりません。パスにQt 5.7を持っているにもかかわらず、Qt Creatorでは、コンパイル出力が5.8フォルダ(qmake.exe、uic.exe、インクルードフォルダなど)を指すすべてのQtファイルを表示します。バージョン5.7への参照はありません。 Qt Creatorフォルダ内にあるので、jom.exeのみがQt 5.8フォルダにありません。多分、Qt 5.7からPathを見て何かをロードするのでしょうか?誰が知っている......

関連する問題