DownOL 软件仓库– 软件下载,字节世界与新知

Qt应用程序开发,如何打包发布

发表于:2024-05-02 作者:创始人
编辑最后更新 2024年05月02日,阅读本文大概需要6.66分钟上几篇文章介绍了如何使用Qt快速开发应用程序,既然我们的程序都开发好了,肯定是要给别人使用的,直接把编译后的**.exe给别人,这样是不能用的,今天就来说说如何打包发布。编

阅读本文大概需要6.66分钟

上几篇文章介绍了如何使用Qt快速开发应用程序,既然我们的程序都开发好了,肯定是要给别人使用的,直接把编译后的**.exe给别人,这样是不能用的,今天就来说说如何打包发布。

编译方式

一般程序分为debug和release模式两种。

debug

debug版本可以说是调试版本,其中包含了大量的调试信息,所以编译后的程序比release大。

release

release模式去掉了一些调试信息,适合程序进行打包发布,但是我们在调试的时候,如果选择release模式,打断点是无法响应的。

程序发布方式

静态发布

静态发布意思就是只有一个**.exe文件,没有其他库依赖。这样发布的时候 只有一个文件(当然还可能有数据库或者配置文件),但是更新的时候不方便,我们必须全部更新,项目大的时候还是比较费事的。相比较而言,动态发布就很方便了,那个模块更新了,直接更新对应的模块即可,不用全部更新。

动态发布

动态发布就是我们的可执行文件需要依赖一些动态库,发布的时候需要和这些动态库一起发布的,因为程序运行过程中才决定载入那些库,缺少任何一个都是无法运行的。

下面举例,编写一个测试demo,进行说明。

测试工程

编写一个测试demo,程序窗体输出build test

测试工程

直接编译。

运行结果如上图所示,上面选择的是debug模式!

找到可执行程序路径:

运行

直接双击该StaticTest.exe是无法运行的,提示你找不到Qt5Cored.dll。提示很明显,运行过程中找不到依赖库。

还可以很明显看到其大小:1.3M左右。

动态发布

上述demo编译完成,想发给别人使用,如果你只发布一个StaticTest.exe,那么别人电脑上是无法运行的,也会提示那样的错误。这个时候需要将依赖库拷贝到一起了。

拷贝到一起后,发现可以运行了,直接将当前目录下所有文件拷贝给别人,就可以运行了。

看到所有文件大小了没有,600多M,有没有被吓坏,而且这只是一个简单的demo。

再次编译一个release版本的看看大小

可以看到,只有40M左右,小好多了!

但是看到没有,这么一大堆的dll,烦不烦,少其中一个都是不能运行的。

解决办法只有一个,那就是静态发布,静态发布需要静态编译Qt源码,然后使用静态套件进行编译,编译完后的程序只有一个.exe哦。

静态发布

静态编译

由于篇幅原因,静态编译的方法,以及教程,放到了下一篇来说。

如果你觉得很有帮助,还请支持。

还是那句话,自己不想编译,想要编译好的库,直接私信。

2022-05-09 12:51:14
0