摘要:代码编写好后,怎么生成一个可执行文件呢?本文先介绍下程序链接的概念,再细说生成可执行文件和安装包的详细步骤,最后总结了贪吃蛇项目可以扩展的方向。
一、链接说明
一般来说,我们编写的程序都不是独立的个体,需要链接使用官方的库代码或者我们自定义的库,程序链接分为:
- Dynamic Link 动态链接(通过链接指针互相链接)
- 优点:体积小,占用内存少
- 缺点:依赖库文件,如果库缺失,则无法运行
- Static Link 静态链接(将库代码和目标代码编译链接在一起)
- 优点:不依赖库文件,可直接运行
- 缺点:程序体积大
库文件后缀:
分类(向右滑➡️) 静态库后缀 动态库后缀 Linux/Unix .a .so Windows下VC .lib .dll Windows下MinGW .a .dll 对于MinGW, .a 仅在生成目标程序过程中使用,.dll 则是在目标程序运行时使用。
二、生成可执行文件
2.1生成release版本
首先,我们需要生成程序的发布版本(release版本) 【点击图片🔍放大看】:
具体工程可参考《贪吃蛇项目》中微信后台回复贪吃蛇源码获取贪吃蛇源码+安装程序工程。
生成发布版本,在对应的项目的release文件夹下,如果找不到,可以在如下路径中找到:
找到relase文件夹下的生成程序TEST.exe:
此时,该可执行文件TEST…exe还不可以直接运行,因为还需要链接到库文件。
2.2链接打包库文件
1.搜索找到Qt自带的命令行工具,版本可能不一,但注意是命令行工具:
![2021-01-28_140352](https://gitee.com/shejizhichun/pic-go/raw/master/20210128140538.png)
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
3.输入windeployqt TEST.exe命令点击回车键自动打包链接程序【点击图片🔍放大看】
此时就大功告成啦,点击TEST.exe就可以直接打开运行程序啦 (_)
注意TEST.exe中TEST是小小编的可执行文件的文件名,各位读者要自己尝试时需要注意不同。
三、生成集成化的可执行文件
我们已经可以打包生成可执行的执行文件,但是大家会发现对应文件夹内有很多库文件:
TEST.exe运行需要依赖这些库文件,是否有什么方法可以脱离这些依赖,亦或者说如果在复制传递的过程中少一个库文件,就运行不起来了么?我们可以通过Enigma Virtual Box工具将TEST.exe文件及需要依赖的dll库文件生成单个可执行文件,公众号后台回复Enigma获取下载链接:
安装方法很简单,一路默认即可。
使用的方法如下【点击图片🔍放大看】:
四、生成安装包文件
我们在网上下软件,通常是两种方式,第一种基本就是上面讲的可执行文件直接运行程序,第二种就是安装包啦,下面就具体讲解安装包的生成,如何将一个软件打包成安装包。
首先,需要下载Inno软件(用于打包的软件),获取方式:
- 官网下载(可能外网限速):https://jrsoftware.org/
- 微信公众号后台回复: inno软件
安装Inno极其简单,一直点确认/Yes等即可。
安装好后,双击打开Inno Setup Compiler:
点击File→点击New→点击Next,跳出此页面:
设置好对应项后点击Next,默认设置再点击Next,直到出现跳至如下页面:
后续,一路默认+Next,直到保存.iss文件,在同路径下的Output我们就可以找到对应的安装包文件。如果需要安装包,也可以通过在微信后台回复贪吃蛇源码获取贪吃蛇源码+安装程序工程:
五、项目尾注
小小编通过《贪吃蛇项目》开始讲解Qt一个项目的从无到有,至此篇生成最终的可执行程序软件,就算是一个句号了,后续Qt专栏内文章依旧会持续更新分享,但不会按数字排列呢,特此说明🙋。
关于项目的拓展呢,可以很丰富的,小小编在此提供几个思路,例如:
- 贪吃蛇食物产生的随机度与速度:随机与随机种子;
- 增加关卡,有积分制度;
- 增加难度,比如有障碍物等。
大家有兴趣也可以探讨探讨进行尝试,一个小小的项目想要做细做丰富也是有大学问呢♐️
分享微信公众号『设计至纯』,查看更多原创内容,O(∩_∩)O一键三连🤳、分享😍、收藏、点赞、支持🐱🚀。 ^ o ^ 您的点赞、评论和关注,是小小编继续创作的不懈动力。 😀