3

それで、私は標準のQtQuick 2アプリケーションを作成しました。これには、デフォルトRecangleTextとがありますMouseArea。そこで、アプリケーションをリリース モードでコンパイルして、生成されるファイルを確認してから、アプリケーションを開こうとしたところ、次のことが起こりました。

サイズを変更すると、空白が表示されます。

ただし、デバッグではすべて正常に機能します。

ここに画像の説明を入力

Qt 5.0.1 と QtQuick2 を使用しています

アップデート

そのため、 Dependency Walkerで実行するとqt5quick.dll、 、qt5gui.dll、およびの3 つのファイルが欠落しているように見えますqt5core.dllどこかから手動で追加する必要がありますか?

現在のディレクトリ構造は次のとおりです。

`test-build-Desktop_Qt_5_0_1_MSVC2010_32bit-Release/release
|+qml
 |+test
  |-main.qml
|-main.obj
|-moc_qtquick2applicationviewer.cpp
|-moc_qtquick2applicationviewer.obj
|-qtquick2applicationviewer.obj
|-test.exe
|-test.exe.embed.manifest

注: 親ディレクトリからのNemanja Boric の回答で提案されているように、qml ディレクトリを貼り付けましたが、問題は解決しませんでした! :(

また、ソース (おそらく JavaScript を除く) はアプリと共に公然と配布されず、アプリケーション内でコンパイルまたはパックされる (.cppファイルとqmlディレクトリに注意してください) という印象を受けました。

更新 2

アプリケーションは、Qt 5 Creator 内から実行すると問題なく動作します。

Starting [...]\test-build-Desktop_Qt_5_0_1_MSVC2010_32bit-Release\release\test.exe...
QOpenGLShader::link: "(41,18): warning X3206: implicit truncation of vector type

" 
[...]\test-build-Desktop_Qt_5_0_1_MSVC2010_32bit-Release\release\test.exe exited with code 0

さて、その厄介な警告は別として...

4

1 に答える 1

3

qml ファイルを現在のディレクトリにコピーする必要があります。QtCreator でリリース アプリケーションを作成すると、次のディレクトリ構造 (またはこのようなもの) になります。

example-build-Desktop_Qt_5_0_1_MSVC2010_32bit-Release
  |-     debug
  |-     qml
  |-     release // application executable is here

あなたがする必要があるqmlのは、実行可能なリリースファイルと同じディレクトリになるようにフォルダーをコピーすることです(単にqmlフォルダーをreleaseフォルダーにコピーするだけです)。

dll ファイルについて -QtInstallDir/binフォルダから手動でコピーするか、そのマシンで開発している場合は、そのディレクトリを に追加することがPATHできます - その方が簡単かもしれません。

cpp ファイルを公開する必要はありませんが、qml ファイルを公開する必要があります。あなたができることは、私は決して成功しませんが、qmlファイルをリソースファイルにバンドルし、リソースからロードすることは可能だと思われますが、それも簡単に抽出できます. qml ファイルの機密情報

また、必要なすべての dll ファイルを exe のあるディレクトリにコピーする必要があります: qt5quick.dll、qt5gui.dll、qt5core.dll、および libEGL.dll。

于 2013-02-11T13:18:02.530 に答える