Qt专栏之生成最终可执行(十六)

摘要:代码编写好后,怎么生成一个可执行文件呢?本文先介绍下程序链接的概念,再细说生成可执行文件和安装包的详细步骤,最后总结了贪吃蛇项目可以扩展的方向。

一、链接说明

一般来说,我们编写的程序都不是独立的个体,需要链接使用官方的库代码或者我们自定义的库,程序链接分为:

  • Dynamic Link 动态链接(通过链接指针互相链接)
    • 优点:体积小,占用内存少
    • 缺点:依赖库文件,如果库缺失,则无法运行
  • Static Link 静态链接(将库代码和目标代码编译链接在一起)
    • 优点:不依赖库文件,可直接运行
    • 缺点:程序体积大

库文件后缀:

分类(向右滑➡️)静态库后缀动态库后缀
Linux/Unix.a.so
Windows下VC.lib.dll
Windows下MinGW.a.dll

对于MinGW, .a 仅在生成目标程序过程中使用,.dll 则是在目标程序运行时使用。

二、生成可执行文件

2.1生成release版本

首先,我们需要生成程序的发布版本(release版本) 【点击图片🔍放大看】:

具体工程可参考《贪吃蛇项目》中微信后台回复贪吃蛇源码获取贪吃蛇源码+安装程序工程。

2124

生成发布版本,在对应的项目的release文件夹下,如果找不到,可以在如下路径中找到:

2021-03-27_002442

找到relase文件夹下的生成程序TEST.exe:

2125

此时,该可执行文件TEST…exe还不可以直接运行,因为还需要链接到库文件。

2.2链接打包库文件

1.搜索找到Qt自带的命令行工具,版本可能不一,但注意是命令行工具

2021-01-28_140352

2.打开工具,通过命令行命令定位到TEST.exe所在的目录。

命令行常用命令:

命令**(向右滑➡️)**注释
cd…返回文件上一层
dir显示当前目录下的文件列表

还有个便捷的方法就是找到所在目录,例如小小编的目录是:D:\Backup\Qt\Test1\TEST2\build-TEST-Desktop_Qt_5_9_0_MinGW_32bit-Release\releasec’d

然后直接cd D:\Backup\Qt\Test1\TEST2\build-TEST-Desktop_Qt_5_9_0_MinGW_32bit-Release\release

【点击图片🔍放大看】(注意都在D盘)dir

2126

3.输入windeployqt TEST.exe命令点击回车键自动打包链接程序【点击图片🔍放大看】

2127

此时就大功告成啦,点击TEST.exe就可以直接打开运行程序啦 (_)

注意TEST.exe中TEST是小小编的可执行文件的文件名,各位读者要自己尝试时需要注意不同。

三、生成集成化的可执行文件

我们已经可以打包生成可执行的执行文件,但是大家会发现对应文件夹内有很多库文件

2021-01-28_143948

TEST.exe运行需要依赖这些库文件,是否有什么方法可以脱离这些依赖,亦或者说如果在复制传递的过程中少一个库文件,就运行不起来了么?我们可以通过Enigma Virtual Box工具将TEST.exe文件及需要依赖的dll库文件生成单个可执行文件,公众号后台回复Enigma获取下载链接:

2021-01-28_144803

安装方法很简单,一路默认即可。

使用的方法如下【点击图片🔍放大看】:

2021-01-28_150014

四、生成安装包文件

我们在网上下软件,通常是两种方式,第一种基本就是上面讲的可执行文件直接运行程序,第二种就是安装包啦,下面就具体讲解安装包的生成,如何将一个软件打包成安装包。

首先,需要下载Inno软件(用于打包的软件),获取方式:

  • 官网下载(可能外网限速):https://jrsoftware.org/
  • 微信公众号后台回复: inno软件

安装Inno极其简单,一直点确认/Yes等即可。

安装好后,双击打开Inno Setup Compiler:

2021-03-27_000637

点击File→点击New→点击Next,跳出此页面:

2021-03-27_003733

设置好对应项后点击Next,默认设置再点击Next,直到出现跳至如下页面:

2021-03-27_004928

后续,一路默认+Next,直到保存.iss文件,在同路径下的Output我们就可以找到对应的安装包文件。如果需要安装包,也可以通过在微信后台回复贪吃蛇源码获取贪吃蛇源码+安装程序工程:

2021-03-27_005828

五、项目尾注

小小编通过《贪吃蛇项目》开始讲解Qt一个项目的从无到有,至此篇生成最终的可执行程序软件,就算是一个句号了,后续Qt专栏内文章依旧会持续更新分享,但不会按数字排列呢,特此说明🙋‍。

关于项目的拓展呢,可以很丰富的,小小编在此提供几个思路,例如:

  • 贪吃蛇食物产生的随机度与速度:随机与随机种子;
  • 增加关卡,有积分制度;
  • 增加难度,比如有障碍物等。

大家有兴趣也可以探讨探讨进行尝试,一个小小的项目想要做细做丰富也是有大学问呢♐️

img

img
分享微信公众号『设计至纯』,查看更多原创内容,O(∩_∩)O一键三连🤳、分享😍、收藏、点赞、支持🐱‍🚀。 ^ o ^ 您的点赞、评论和关注,是小小编继续创作的不懈动力。 😀

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值