• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

QT程序打包

Qt admin 2年前 (2016-06-01) 796次浏览 0个评论 扫描二维码

qt_training_cube

0:Qt 程序发布理论知识和相关工具

  • Qt 程序在发布时只需要把需包含的 dll 动态链接库文件放在需要发布程序同一目录即可
  • 那么如何找到可运行程序,依赖哪些 dll 动态链接库文件呢?
  • 网上有人用 depend.exe 这个程序的开我们的可运行程序,就可以找到该程序依赖于哪些动态链接库了
  • 博主用 depend.exe 试了一下,效果并不好,实际上 Qt5.6 已经为我们准备好了一个非常好用的工具
  • 在安装了 Qt 之后,这个工具就在下面的目录
    在 D:\Qt\Qt5.6.0\5.6\mingw49_32\bin 路径下面有一个 windeployqt.exe 工具(大家在自己的 Qt 安装目录寻找)
    windeployqt.exe 这个程序就可以帮我们找到需要发布的程序依赖哪些 dll 库文件,并且还会把这些依赖的
    库文件直接复制到当前应用程序存在的目录 
    

1:windeployqt.exe 工具的使用

  • 1:把 windeployqt.exe 的存放路径,添加到 windows 的 path 环境变量(不会的朋友自己百度)
  • 2:打开 windows 的命令行 cmd,然后 cd 到需要发布的程序的目录,假定需要发布的 Qt 程序名为 myqtapp.exe
  • 3:运下如下命令后,依赖的库文件就会自动复制到当前目录
     windeployqt.exe myqtapp.exe
    
  • 4:这里可以尝试双击一下 myqtapp.exe 文件,如果还缺少其它的 dll 文件,程序会无法运行,并报错提示缺少什么!
  • 5:这里缺少什么 dll 文件,就在 Qt 的安装目录搜索对应的 dll 文件,找到后复制到当前程序目录即可
    通常还会需要一些非 Qt 的标准库,如 libgcc_s_dw2-1.dll libwinpthread-1.dll, libstdc++-6.dll,
    

2:使用 NSIS 程序打包发布

  • 经过上面操作后,可运行程序依赖库的问题就解决了,接下来把可运行程序目录的所有文件打包成.zip 的压缩包
  • 之后打开 NSIS 这个软件,选择从 zip 文件进行打包,最终将 zip 文件打包成一个单独的 exe 文件
  • 这时就可以把这个单独的 exe 文件发布出去了
    NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序
    

3:补充一点,给发布的应用程序添加[应用程序图标]的方法

添加应用程序图标的过程:
在 Qt 工程源码目录下操作

1:新建一个文件 appicon.rc
在 appicon.rc 文件中 输入如下内容 
IDI_ICON1 ICON DISCARDABLE "taiji.ico"    #注意后面的 ico 文件换为自己所使用的

2:在.pro 文件中加入如下内容 即可
RC_FILE=appicon.rc     

3:重新编译工程后,这里.exe 的文件已经变成相应的 ico 图标了

4:python 脚本程序发成可运行二进制程序的方法

  • 可运行二进制程序不依赖于 python 解释器,也能运行
#1:安装 python 开发环境 

#2:安装 pyinstaller
pip.exe install pyinstaller

#3:使用 pyinstaller 发布为可运行二进制程序
pyinstaller -F xxx.py  -p modulePath           
#-p 选项后面接 module 存放的目录,如 xxx.py 中使用了 BeautifulSoup4 这个 module,那么就通过-p 指定 BeautifulSoup4 存放的目录
#执行完上面的命令后,就会在 dist 目录下面,生成一个可运行的二进制文件 

Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明QT 程序打包
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!