• Qt程序打包发布


    这几天在研究Qt,首先尝试用Qt Creator编写一些小程序来练练手。但是,在这个过程中却遇到了一个问题:使用Qt Creator编写的exe程序,只能在本机运行,跑到别的电脑上就无法运行了,提示缺少各种各样的库。这个问题,我之前在搞VS-MFC的编程时,也遇到过,无非就是一些运行时库的问题导致的。当时的做法时,根据程序运行时报错所缺失的库,一个一个手工查找和拷贝,收集全部所依赖的库到程序目录下,程序就可以正常运行了。因此,对于这次的情况,我原本也打算这么做。但是,无意间在一篇博客里看到,Qt的设计者其实一早就料到有这种情况发生的,所以,他们为Qt专门设计了一个发行程序时自动对依赖库打包的工具,可以全自动为用户完成上述工作,那可就方便多了。下面就对这个工具的用法进行介绍:
    1、首先找到这个工具,这个工具叫做“windeployqt”。它一般位于Qt安装目录下的mingw_XXin目录下,像我的目录就在C:ProgramDataQt5.8mingw53_32in。
    此时,建议将整个目录直接加入系统环境变量,便于后续使用。
    2、编译你的程序,注意必须是release版本。debug版本的貌似不行。
    3、启动cmd,进入到你要发布的程序所在的目录,比如我的程序放在D:Test目录下,就输入”cd /d d: est”,记住里面一定要加”/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:ProgramDataQt5.8mingw53_32qml。
    5、输入上述命令之后,Qt就会自动复制它所依赖的各个插件文件夹和 dll文件、qm文件,得到的就完整的 exe 程序发布集合,依赖关系都解决好了,可以直接发布到其他的电脑上运行。
    6、要注意的是,按照上述步骤完成之后,仍有可能会提示dll缺失信息,像我就遇到了缺失的提示。不过,好在此时缺失的dll很少(我遇到的就只有3个:libwinpthread-1.dll、libstdc++-6.dll、以及libgcc_s_dw2-1.dll),可以手动去复制,根据我的经验,可以直接在C:ProgramDataQt5.8mingw53_32in目录下面找到这几个dll。
    7、其他未尽事项,建议大家参考以下这篇博文,介绍的非常详细。
    http://blog.csdn.net/liuyez123/article/details/50462637
    8、搞定,收工!
  • 相关阅读:
    光棍节的小窃喜
    叶子的飘逝,是谁的错
    IDEA日志文件使用EmEditor打开————解决打开大txt文件崩溃的问题
    java并发编程系列(一):java多线程中常用指令
    HashMap理解
    RabbitMQ入门
    Docker学习笔记
    elementui级联选择器(elcascader)改变value与label
    tinymce富文本不刷新二次打开无法编辑问题
    融合通信常见问题2月刊 | 云信小课堂
  • 原文地址:https://www.cnblogs.com/xiangtingshen/p/10988325.html
Copyright © 2020-2023  润新知