Qt 应用程序在调试时工作,但不';“我不工作时”;“已发布”;

Qt 应用程序在调试时工作,但不';“我不工作时”;“已发布”;,qt,qml,qt5,qtquick2,Qt,Qml,Qt5,Qtquick2,所以,我刚刚制作了一个标准的,QtQuick 2应用程序,它有默认的Recangle,Text和MouseArea。因此,我尝试在发布模式下编译应用程序,查看它将生成哪些文件,然后尝试打开应用程序,结果如下: 调整其大小时,可以看到空白: 但是,在调试过程中,这一切都可以正常工作: 我正在使用Qt5.0.1和QtQuick2 更新 因此,在运行完之后,它似乎缺少三个文件:qt5quick.dll,qt5gui.dll,以及qt5core.dll我必须从某个地方手动添加它们吗? 当前目录结构

所以,我刚刚制作了一个标准的,
QtQuick 2
应用程序,它有默认的
Recangle
Text
MouseArea
。因此,我尝试在发布模式下编译应用程序,查看它将生成哪些文件,然后尝试打开应用程序,结果如下:

调整其大小时,可以看到空白:

但是,在调试过程中,这一切都可以正常工作:

我正在使用Qt5.0.1和QtQuick2

更新 因此,在运行完之后,它似乎缺少三个文件:
qt5quick.dll
qt5gui.dll
,以及
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
注意:我按照中的建议从父目录粘贴了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

好的,除了那一个尴尬的警告…

您需要将qml文件复制到当前目录中。当您使用QtCreator创建发布应用程序时,您将拥有以下目录结构(或类似的结构):

您需要做的是将
qml
文件夹复制到与可执行版本文件位于同一目录中(只需将
qml
文件夹复制到
release
文件夹中)

关于dll文件-您可以从
QtInstallDir/bin
文件夹手动复制它们,或者您可以将该目录添加到
PATH
,如果您是在该计算机上开发的话-这可能会更容易

您不需要发布cpp文件,但需要发布qml文件。您可以做的是,通过我的努力,我从未成功过,但似乎有可能将qml文件捆绑到资源文件中,并从资源中加载,但这也很容易提取-因此-不要将逻辑或机密信息放入qml文件中


此外,您还需要将所有必需的dll文件复制到带有exe的目录中:qt5quick.dll、qt5gui.dll、qt5core.dll和libEGL.dll。

可能存在未初始化的变量或缓冲区溢出。如果您使用Linux,请获取valgrind。运行test.exe时,问题是相同的,还是现在报告缺少dll问题?@nemanjabric No,it actually刚刚启动,看起来像是第二个图像。这没有意义…你确定你运行的是正确的版本吗(我想是的,但我看到的可执行文件的名称与清单文件不同,所以可能是一些旧文件?)哦,facepalm不,我在读一些叫做“thepalace”的古老聊天工具然后不假思索地把它打印出来,哈哈。它实际上是
test.exe.embed.manifest
啊,那完全没用(@starship你如何运行程序?它在这里工作得很好。不要复制qml文件夹的内容,而是文件夹本身,并从发布目录运行exe文件。我也必须将
libEGL.dll
复制到文件夹中。不过依赖项行者没有提到它。所以,我想只要把它添加到你的答案中,我就可以接受它了!:D@starship我会的,太好了:)。
example-build-Desktop_Qt_5_0_1_MSVC2010_32bit-Release
  |-     debug
  |-     qml
  |-     release // application executable is here