QT Creator 构建 qml 应用程序

Posted

技术标签:

【中文标题】QT Creator 构建 qml 应用程序【英文标题】:QT Creator build qml application 【发布时间】:2019-07-12 13:40:09 【问题描述】:

我构建了一个简单的 qml 应用程序,我想发送给客户(最好是 .exe) 当我运行构建项目时,发布目录中的可执行文件没有做任何事情。 使用大多数语言 ide 就是我所要做的,单击将生成可执行文件并发送它的特定构建按钮。 我是否需要在 qt 中采取额外步骤来为客户生成版本?

【问题讨论】:

我可以猜到这种情况,但通常最好在您的问题中包含一些错误代码(我认为您得到了 0xc0000135?)。您缺少 Qt dll,必须使用 windeployqt.exe 将其绑定到应用程序 @Amfasis .exe 什么都不做,甚至没有显示错误,也尝试以管理员身份运行。 目前在 linux 上,所以无法尝试重现,但可能从控制台运行并检查退出代码 echo Exit Code is %errorlevel%? 【参考方案1】:

请阅读关于如何在 Windows 上部署 Qt 程序的 Qt 文档:https://doc.qt.io/qt-5/windows-deployment.html

大多数情况下,您只需调用windeployqt 即可将所有与 Qt 相关的 DLL 复制到您的 exe 文件旁边:

windeployqt --qmldir path_to/my/src/qml myprogram.exe

然后你可以压缩文件夹并发送它。

注意:如果您使用的是 MSVC,您将拥有一个 vc_redist.exe 文件。这是安装最新 Visual C++ 运行时的设置,您需要确保在运行程序之前运行此设置。通常这是作为程序安装过程的一部分完成的,当您将其作为“setup.exe”分发时。

如果您想向客户发送单个 exe,您有 2 个选择:

    进行设置。这意味着用户必须安装该程序。 静态链接 Qt(和所有库)。这意味着您必须从源代码构建自己的静态 Qt 库。这并非不可能,但也不简单。此外,如果您在开源许可下使用 Qt,您的程序将受到 LGPLv3 的更严重影响。 您可以将文件夹压缩成一个可自解压的 zip 文件。当客户启动程序时,它会将所有文件(您的主 exe 文件 + Qt dll)提取到一个 tmp 文件夹中,然后启动您的 exe。这会显着增加程序的启动时间,因为您每次都必须解压缩所有文件。

【讨论】:

我还没有尝试过,但我不想将文件夹发送给客户,只是一个可执行文件。 @SvenvandenBoogaart 你不能这样做,或者它很复杂。这就是我们在 Windows 上进行设置的原因。我已经为我的答案添加了可能的解决方案。

以上是关于QT Creator 构建 qml 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Qt Creator qml:使用(额外)Qt 组件库(ubuntu)

如何完全禁用 Qt Creator 中的 QML 调试器?

[Qt5] Develop openCV3 by QML on Qt-creator

如何在QML(QT Creator)中使用发光脉动效果制作元素动画?

如何在 Qt Creator 中解决“找不到 QML 模块”

在 qt creator 中从 ..qml 文件生成 .cpp 和 .h 文件