[Qt]Qt程序发布:在windows下打包成exe文件的过程

c/c++

浏览数:181

2019-3-29

AD:资源代下载服务

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目录下面,生成一个可运行的二进制文件