qt打包(QT之程序打包发布)

1.引言

QT开发完之后,如果直接把exe文件发给别人,是没法直接用的,因为会提示缺少很多库,一种方法是把这些库拷贝出来,一起发过去,但是这样不方便且文件很大,所以需要一种文件打包发布的方法。

2.环境

1)QT 5.12.3版本,QT 4.x版本不行。

2)Enigma Virtual Box

enigmaprotector.com/en/downloads.html

qt打包(QT之程序打包发布)(1)

3.具体步骤

1)打开一个QT程序,以release方式运行一次。操作如下图:

qt打包(QT之程序打包发布)(2)

2)这时你的工程项目文件夹下,会生成一个关于release的文件夹,打开关于release相关的文件夹,找到该目录下release目录下的.exe程序。此时你点击是运行不成功的。因为缺少QT必要的库文件。

qt打包(QT之程序打包发布)(3)

将这个.exe文件拷贝出来,创建一个单独的文件夹,放在这个文件夹下,比如桌面的test文件夹里。

qt打包(QT之程序打包发布)(4)

3)在开始菜单中,打开QT命令行窗口

qt打包(QT之程序打包发布)(5)

qt打包(QT之程序打包发布)(6)

接着输入命令行,cd /d 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),回车

cd /d C:/Users/wangwnexue/Desktop/test

qt打包(QT之程序打包发布)(7)

4)输入如下命令行:windeployqt 程序名 敲击回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件:

qt打包(QT之程序打包发布)(8)

qt打包(QT之程序打包发布)(9)

此时,在当前目录下是可以点击运行exe程序的,说明库文件都已经拷贝到当前目录下了。这时就可以执行将这一堆文件进行打包的操作了,需要使用Enigma Virtual Box工具。

5)打开运行Enigma Virtual Box

第一步选择上述的exe文件

qt打包(QT之程序打包发布)(10)

第二步:添加路径和文件如下图。选择所有文件后,注意是要所有文件和文件夹全部拖进。示意图如下:

qt打包(QT之程序打包发布)(11)

qt打包(QT之程序打包发布)(12)

结果如下:

qt打包(QT之程序打包发布)(13)

第3步:点击在【Files Options】中可以选择是否将文件压缩:

qt打包(QT之程序打包发布)(14)

第4步:最后点击Process开始打包

qt打包(QT之程序打包发布)(15)

qt打包(QT之程序打包发布)(16)

生成testweb_boxed.exe就可以直接打开使用了。

4.问题总结

在实际操作过程中遇到了以下几个问题

1) 提示windeployqt不是内部或外部命令

qt打包(QT之程序打包发布)(17)

原因是:一开始我电脑里用的不是QT5.x版本,所以它是没有的,装了新版本的就有了。

2) 提示FaceImport.exe does not seem to be a Qt executable.

原因是:我装了QT最新版本,但是编译器用的还是老版本,需要改成最新的,就可以了。

qt打包(QT之程序打包发布)(18)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页