如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布)
来源:互联网 发布:图像自动拼接软件 编辑:程序博客网 时间:2024/05/01 00:25
这几天在研究Qt,首先尝试用Qt Creator编写一些小程序来练练手。但是,在这个过程中却遇到了一个问题:使用Qt Creator编写的exe程序,只能在本机运行,跑到别的电脑上就无法运行了,提示缺少各种各样的库。这个问题,我之前在搞VS-MFC的编程时,也遇到过,无非就是一些运行时库的问题导致的。当时的做法时,根据程序运行时报错所缺失的库,一个一个手工查找和拷贝,收集全部所依赖的库到程序目录下,程序就可以正常运行了。因此,对于这次的情况,我原本也打算这么做。但是,无意间在一篇博客里看到,Qt的设计者其实一早就料到有这种情况发生的,所以,他们为Qt专门设计了一个发行程序时自动对依赖库打包的工具,可以全自动为用户完成上述工作,那可就方便多了。下面就对这个工具的用法进行介绍:
1、首先找到这个工具,这个工具叫做“windeployqt”。它一般位于Qt安装目录下的mingw_XX\bin目录下,像我的目录就在C:\ProgramData\Qt\5.8\mingw53_32\bin。
此时,建议将整个目录直接加入系统环境变量,便于后续使用。
2、编译你的程序,注意必须是release版本。debug版本的貌似不行。
3、启动cmd,进入到你要发布的程序所在的目录,比如我的程序放在D:\Test目录下,就输入”cd /d d:\test”,记住里面一定要加”/d”的参数,否则将无法进入该目录。
4、确认你的程序是用Qt Creator哪个模式设计的,总共有2个模式,Qt Widgets Application和Qt Quick Application,不同模式下的参数命令是不一样的:
- 在Qt Widgets Application模式下
输入”windeployqt hello.exe”命令,其中hello.exe是我的程序名称。
- Qt Quick Application模式下
输入”windeployqt hello.exe –qmldir”命令, 其中hello.exe是我的程序名称,qmldir是你的qml目录,这个目录一般位于mingwXX目录下,像我的目录就在C:\ProgramData\Qt\5.8\mingw53_32\qml。
5、输入上述命令之后,Qt就会自动复制它所依赖的各个插件文件夹和 dll文件、qm文件,得到的就完整的 exe 程序发布集合,依赖关系都解决好了,可以直接发布到其他的电脑上运行。
6、要注意的是,按照上述步骤完成之后,仍有可能会提示dll缺失信息,像我就遇到了缺失的提示。不过,好在此时缺失的dll很少(我遇到的就只有3个:libwinpthread-1.dll、libstdc++-6.dll、以及libgcc_s_dw2-1.dll),可以手动去复制,根据我的经验,可以直接在C:\ProgramData\Qt\5.8\mingw53_32\bin目录下面找到这几个dll。
7、其他未尽事项,建议大家参考以下这篇博文,介绍的非常详细。
http://blog.csdn.net/liuyez123/article/details/50462637
8、搞定,收工!
- 如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布)
- 如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布)
- Qt的程序在其他电脑上使用
- QT程序 如何在未安装QT的电脑上运行
- QT程序 如何在未安装QT的电脑上运行
- 在没有安装QT的电脑上运行QT程序常见的问题
- 在没有安装QT的电脑上运行QT程序常见的问题
- 对于vs中生成的sdk程序在其他电脑上无法运行的的问题
- 用VS2010编写的C++程序,在其他电脑上无法运行的问题
- qt creater环境下编译出来的程序在其他环境上不能运行问题
- Qt程序打包发布的问题
- 关于Qt程序打包后在其他电脑打印功能不可用问题
- Qt解决在其他电脑运行可执行文件
- 解决VC2005/2008开发的程序在其他机器上无法运行的问题
- Qt程序在其他电脑上运行时提示:couldnot find or add the Qt platform plugin:windows
- Qt程序在运行的目标机上Gif等格式的图片无法显示问题
- 一个关于VS2008在其他未安装VS2008的电脑上无法运行编译的程序的问题
- 一个关于VS2008在其他未安装VS2008的电脑上无法运行编译的程序的问题 收藏
- 插入排序实现(Java)
- logback xml配置命名空间
- SDIO接口介绍
- dp-3
- JAVA蓝桥杯字符串对比
- 如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布)
- linux安装多tomcat的配置方法(常见问题:Cannot find //bin/setclasspath.sh)
- hibernate deleteAll问题
- NumPy详细API第二篇
- 计算机程序设计艺术一欧几里得算法
- java批量修改文件名
- Jungle Roads 最小生成树
- python 笔记4
- Java反射机制详解(转载)