应用程序无法正常启动解决方案
错误原因:
其根本原因是缺乏所需要的DLL,提供了错误版本的dll相当于没有DLL,提示完全一样
也就是你找到的dll文件不对,虽然名字一样的。我们需要到qt安装目录下去寻找。否则找出来的dll就是错误的,跟qt不对应,就会出现程序错误现象。
例子:
我的安装目录为:
E:\SoftWareInstall\QT\qt5.9.5\Tools\mingw530_32\i686-w64-mingw32
在这个目录下查找:
我在E盘里查找:
因为我电脑里安装了vavido,所以可以看到我们也找到了这个dll,两者名字虽然相同,但是是不匹配的,所以会出现上面的情况。
在程序打包后缺少相应的dll的时候,我们需要到qt的编译器工具目录下去寻找对应缺失的文件。
应用程序无法正常启动解决方案错误原因:其根本原因是缺乏所需要的DLL,提供了错误版本的dll相当于没有DLL,提示完全一样 也就是你找到的dll文件不对,虽然名字一样的。我们需要到qt安装目录下去寻找。否则找出来的dll就是错误的,跟qt不对应,就会出现程序错误现象。例子:我的安装目录为:E:\SoftWareInstall\QT\qt5.9.5\Tools\mingw530_32\i686-w64-mingw32在这个目录下查找:我在E盘里查找:因为我电脑里安装了vavido,所以可
可执行
文件
无法
运行
,提示应用
程序
无法正常启动
0xc000007b
1.
出现
的问题,如下图所示2. 分析3.怎么解决呢?3.1第一种方法(不推荐)3.2 第二种方法(推荐)4.特殊情况,有使用
Qt
外其他的动态链接库4.1第一种解决方法4.1第二种解决方法
1.
出现
的问题,如下图所示
Qt
Debug和
打包
的可执行
文件
(*.exe)无法
运行
,提示应用
程序
无法正常启动
0xc000007b
2. 分析
这是缺少
Qt
的动态链接
文件
(.dll)导致的,如
Qt
5Core.dll等库
文件
,“DLL的全称是Dynamic
用 windeploy
qt
打包
QT
程序
,
运行时
提示
程序
无法正常启动
0xc000007b
,如图:
原因:在网上找到各种方法,而我的原因是本机装了多个版本的
Qt
,包括4.8, 5.9的,在cmd下可能是环境变量原因,用 windeploy
qt
打的包无法
运行
。如:
这样是配置出来的
文件
,会
出现
各种问题。
解决办法:
我在创建项目的时候使用的是:
点击之后,在命令行
中
输入命令:windeploy
qt
文件
路径\
文件
名 (因为无法使用cd命令),如图:
这样生成的配置
文件
,exe即可执行。
2.release版本编译并在工程release
文件
加生成test.exe
文件
(test代表你的工程名)
3.将release
文件
夹下生成的test.exe
文件
放到一个单独的
文件
夹下。
4.使用windeploy.exe对自己编
写
的软件进行部署。
5.部署完成之后,使用“Enigma Virtual Box”软件(不是虚拟机)对
文件
进行
打包
,生成单独的
文件
包,可移植到别的电脑单独
运行
。
二、常见
错误
1. 环境变量未配置正确,具体配置详见这里。
采用
QT
开发的生成的exe
程序
,直接
运行
出现
“应用
程序
无法正常启动
0xc000007b
的
错误
“,在网上找到答案,现记录如下:
1.以 Release 方式编译生成 exe
程序
后,复制到新
文件
夹里
2.开始菜单命令行的方式打开
QT
输入命令cd /e E:\release
注意,要拷贝,手动输入会
出现
下面的
错误
。
3.然后使用 windeploy
qt
工具命令:
拷贝输入w...
在本地开发环境启动正常,在其他无开发环境的系统启动报错
0xc000007b
,根据自己的理解,结合网上查到的内容,从以下几个方面进行处理:
1. 将已知的exe依赖dll拷贝到执行环境目录;(也可在其他指定目录,通过cmd启动时指定环境变量)
2. 通过dependency 分析遗漏的dll
文件
;
3. 添加msvc的
运行
库
4. 通过vs生成后期事件,将
qt
的调试库直接拷贝到输出路径(也可直接在对应的
qt
.
2. 创建一个目录,将可执行
文件
和相关的库
文件
复制到该目录下。
3. 创建一个脚本
文件
,用于启动
程序
。脚本
文件
中
需要指定可执行
文件
的路径和相关的环境变量。
4. 使用Linux
打包
工具(如tar)将目录
打包
成一个压缩
文件
。
5. 将压缩
文件
上传到服务器或者其他需要部署的机器上。
6. 在目标机器上解压缩
文件
,并
运行
脚本
文件
启动
程序
。
注意事项:
1. 确保
程序
所依赖的库
文件
都已经安装在目标机器上。
2. 在编译
Qt
程序
时,需要指定静态链接选项,以避免在目标机器上缺少相关的库
文件
。
3. 在创建脚本
文件
时,需要考虑到不同的Linux发行版之间的差异,以确保
程序
能够在不同的环境下正常
运行
。