2

私は、いくつかの学校の仕事のために、Qt OpenGLプロジェクトに少し取り組んでいます。OpenGLを適切に使用できるように、Windowsマシン用にQt 5.0.1を再構築する必要がありました。このプロジェクトの最後に、ファイルと実行可能ファイルを引き渡す必要があるため、リリースの .exe を .zip に貼り付けて使用できると考えました。

必要な.dllを.exeのディレクトリに配置することを確認するオンラインの指示に従いました。私のプロジェクトには10​​個あります:icudt49、icuin49、icuuc49、libEGL、libGLESv2、Qt5Core、Qt5Gui、Qt5OpenGL、およびQt5Widgets

これらのファイルはすべて C:\Qt\Qt5.0.1\5.0.1\msvc2010\bin から取得しました。

私のシステムで。

問題は、.exe が実行され、UI とすべてが表示されることです。しかし、OpenGL シーンは真っ黒です。シーン内のオブジェクトをクリックしたり、明らかにズームインおよびズームアウトしたりできます。Qtがまだコマンドを翻訳しているだけだと思います。しかし、何も見えません。作成者から起動するとすべて正常に動作するため、何が問題なのかわかりません。

編集:したがって、リリース フォルダー内のすべての dll を使用して、クリエーター内からプロジェクトを実行すると、黒い画面が表示されます。それらを削除すると、正常に実行されます。では、おそらく dll の 1 つが間違っているのでしょうか?

また、Qt Creator を使用したパブリッシングについてオンラインで調べたところ、あまり助けが見つからず、Qt Creator を静的に完全に再構築することから始めるべきだと言いましたが、私が従ったガイドがこれを行ったと確信していますが、まだからパブリッシュすることはできませんメニューをビルドするので、上記の方法に固執しました。

4

2 に答える 2

1

Zip ファイル内のすべての DDL を Dependency Walker ( http://www.dependencywalker.com/ )で開くことをお勧めします。QtXXX.dll ファイルの 1 つから他のファイルへの依存関係に関する情報が表示されます。依存関係の 1 つが欠落している場合、次にどこを見ればよいかがわかります。Dependency Walker で実行可能ファイルを開こうとすることもできます。私はこのプログラムを長い間使用していないので、実行可能ファイルを開くことが唯一の方法かどうかは覚えていません。いずれにしても、このツールを使用する理由は次のとおりです: http://www.dependencywalker.com/help/html/overview_1.htm

この質問も役立つ場合があります。

暗黙的に依存するモジュールにエクスポート機能がないため、少なくとも 1 つのモジュールに未解決のインポートがあります

幸運を!

于 2013-04-26T09:24:34.393 に答える
0

したがって、最終的な問題は正しい DLL を使用することでした。DependenyWalker のようなものを使用すると、欠落している可能性のある DLL を確認するのに役立ちますが、私の場合は何もしませんでした。

Qtを一度インストールし、再構築、アンインストール、再インストールしました。ただし、それが呼び出していたすべてのライブラリは、C:\Qt\Qt5.0.1\5.0.1\msvc2010\bin ではなく、期待どおりに C:\Users\User\Documents をビルドした github リポジトリから呼び出していました。 \GitHub\qt5. これが整理されると、まだフレームワーク フォルダーが必要であり、期待どおりに機能します。

1) 正しい DLL ファイルをビルドのリリース フォルダーにコピーします。

2) .exe と同じディレクトリに「platforms」という名前のフォルダーを作成します。(注: 他の場所ではプラグインの作成 > プラットフォームと記載されていますが、これは新しい Qt バージョンでは機能しません)

3) 他の DLL を入手したのと同じソースから、作成したプラットフォーム フォルダーに qwindows.dll をコピーします。

4) 実行可能ファイルを実行してお楽しみください。

実行しているシステムが OpenGL 構造に対応している限り、問題ありません。

于 2013-04-26T21:06:07.280 に答える