qt quick发布程序启动失败

qt quick/qml 程序发布之后,程序启动不了
经过探究测试,程序启动的不了的情况下是因为有dll没有添加。在release文件夹下进行发布操作(不单独复制xx.exe拿出来),再次点击IDE的RUN按钮,则会提示有Moudle没有安装。根据提示的模块找到对应的import语句,然后去根目录里找,之后复制文件夹,粘贴到发布的文件夹相应位置。

如:import qt.labs.platment 那么在安装目录里,会在Qt\labs\platment下有对应的dll。把platment整个文件夹拷贝到release文件夹相应的位置,再次点击RUN,发现程序跑起来了。单独去release文件夹下点击程序,也能跑起来。

这属于windeployqt的bug。

注:发布命令:windeployqt D:\work\release\xxx.exe --qmldir D:\somesoft\Qt\Qt5.12.0\mingw73_64\qml

之后用inno setup软件进行程序安装包的制作
————————————————
版权声明:本文为优快云博主「无人机KAKA」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_38625544/article/details/114011264

### 打包Qt Quick应用程序于Linux环境 #### 准备工作 为了成功打包基于Qt Quick的应用程序,在Linux环境中需准备特定工具集。这包括`linuxdeployqt`以及其依赖项`patchelf`,其中前者用于处理应用程序及其依赖关系的收集与部署,而后者则负责调整可执行文件和共享库中的路径信息[^2]。 #### 修改QML源码 对于采用QML编写的界面部分,建议将顶级组件由`Window`更改为`ApplicationWindow`以适应桌面应用的标准结构并增强兼容性。 #### 收集必要资源 针对Qt框架本身及相关模块(如QtGraphicalEffects, QtQuick等),应确保这些位于标准安装位置下的子目录被正确复制到目标发布包内。具体来说,涉及到了解Qt安装路径下多个关键文件夹的内容迁移操作[^3]: ```plaintext /opt/Qt/5.15.2/gcc_64/qml/ ├── Qt ├── QtGraphicalEffects ├── QtQml └── QtQuick └── ... ``` #### 创建启动脚本 编写一个简单的Shell脚本来设置必要的环境变量,并通过它来启动应用程序。此步骤有助于解决可能存在的动态链接库加载失败的问题。示例脚本如下所示: ```bash #!/bin/bash export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH ./your_application_name ``` 保存上述代码至名为`start.sh`的文件中,并赋予执行权限以便后续使用。 #### 验证依赖完整性 利用命令行工具`ldd`可以检查已打包的应用是否能够找到所有必需的外部库。如果发现缺失,则可以通过查找系统中存在的相应版本并通过软连接等方式将其引入项目根目录或指定的lib目录之下。 #### 使用windeployqt辅助部署 尽管`windeployqt`主要用于Windows平台上的Qt应用分发准备工作,但在某些情况下也可以尝试应用于Linux版Qt项目的初步测试阶段。不过需要注意的是参数配置应当匹配当前操作系统特性,例如指定正确的`.qml`文件所在的位置作为输入之一[^4]: ```shell /path/to/windeployqt --qmldir /path/to/qml_directory your_executable_file ``` #### 构建deb软件包 最后一步可以选择创建Debian格式(.deb)的安装包,使得最终产品更容易被广大GNU/Linux用户接受。这一过程通常涉及到构建控制文件(`control`)以及其他元数据描述文档的工作,之后借助`dpkg-deb`等相关命令完成整个打包流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值