Qt实例-UCF数据标注3之程序发布
来源:互联网 发布:获取php版本号 编辑:程序博客网 时间:2024/06/14 15:01
1.
当程序release之后,如何在其他没有安装Qt的电脑上运行?
首先把编译好的exe文件放置在一个新建文件夹下,然后在同目录下创建.bat文件。
%myexe.bat%C:\Qt\Qt5.8.0\5.8\msvc2015_64\bin\windeployqt.exe UCF_shadow_mark.exepause
接着运行批处理文件,把需要用到的dll文件自动复制到当前目录下。
但是,此时把此文件夹copy到老服务器上,运行exe文件,会提示缺少动态库。先后执行opencvworld300.dll->vcruntime140.dll->MSVCP140.DLL->运行C:\Qt\Qt5.8.0\vcredist\vcredist_msvc2015_x86.exe->api-ms-win-crt-runtime-l1-1-0.dll。
一开始运行的时候提示缺少opencvworld300.dll,放入之;运行,提示缺少vcruntime140.dll,放入;运行,提示缺少MSVCP140.DLL,放入;运行,提示无法定位程序输入点,后百度之,提示可以安装Qt目录下提供的vcredist_msvc2015_x86.exe,安装必要的运行库;运行,提示缺少api-ms-win-crt-runtime-l1-1-0.dll,放入,运行成功!
注:动态库都是处于system32文件夹下,而不是SysWOW64文件夹下。一开始的时候提示缺少vcruntime140.dll等库时,找到对应的SysWOW64文件夹下的库,结果最后提示“应用程序无法正常启动(0xc000007b),请单击“确定”关闭应用程序。”(下载Process Explorer程序,点击菜单栏中的view选中Lower Pane View中的DLLs,就可以查看程序运行时所需要的动态库及其地址)
2.
另外可以下载Dependency Walker,把左上角一级目录下显示为红色的dll,挨个复制到exe同目录文件夹下
运行Dependency Walker,输入exe,
依旧KERNEL32.DLL和SHELL32.DLL是红色的,在Process Explorer中发现这两个库的位置依旧是在system32文件夹下,没有调用当前目录下的dll文件。为什么没有调用呢?待解决。
3.
当在新的服务器上运行的时候,先安装vcredist\vcredist_msvc2015_x86.exe,之后依次提示如下
而libpng16.dll和zlib.dll在自己电脑上和老服务器上位于C盘下的Anaconda下的C:\Users\Administrator\Anaconda3\Library\bin下,而新服务器没有默认安装,而是装到D盘,依次放入这3个动态库,问题解决。而老服务器缺少的几个文件,新服务器上却位于Anaconda和systme32下,见下图:
4.总结
第一步:安装vcredist_msvc2015_x86.exe,这个库会在system32文件夹下放入很多的api-ms-win-crt开头的库。
第二步:放入opencv300.dll
第三步:运行时缺少什么库就放入什么库,主要借助Process Explorer程序找到库的地址。
参考网址:
http://blog.sina.com.cn/s/blog_66cd08930102w74s.html【qt5.5程序打包发布以及依赖】
https://www.cnblogs.com/lawliet12/p/6916410.html【QT出现应用程序无法正常启动0xc000007b的错误】
http://tieba.baidu.com/p/5014423968【QtCreator缺少api-ms-win-crt-runtime-l1-1-0.dll】
- Qt实例-UCF数据标注3之程序发布
- Qt实例-UCF数据标注
- Qt实例-UCF数据标注2
- Qt实例-UCF数据标注4之界面布局(未完待续)
- Qt实例-UCF数据标注5之绘图控件的选择
- Spartan-3 LVDS UCF
- Qt程序发布
- Qt 发布程序
- 打包发布qt程序
- QT程序设计-发布程序
- 如何发布Qt程序
- qt程序发布
- QT程序的发布
- QT下发布程序
- QT程序打包发布
- QT程序发布
- Qt 程序发布
- Qt-程序发布
- 深入学习javascript
- Android开发常用框架汇总
- 分页查询
- redis-cli 批量删除写法
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration... 博客分类: FLEX CC++C#Fl
- Qt实例-UCF数据标注3之程序发布
- Ubuntu 彻底删除已安装的软件
- map 学习(下)——C++ 中的 hash_map, unordered_map
- 索引advantageVSdisadvantage
- centos7下mysql中The server quit without updating PID file等问题
- L-系统的改写以及简单树形迭代
- NYOJ B. Bone Collector
- Java 经纬度计算两个点的之间的距离
- 结构体类型的创建