本文主要是介绍Qt5 程序封包exe,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天接到一个需求,编写需求完了要封包,在其他程序中调用这个外部exe
愁啊! 没弄过!一顿百度
1.把release的exe文件单独放入一个文件夹中
2.执行qt自带的windeployqt工具来打包
点电脑开始-->选择项目的编译方式
有很多中编译方式,gcc,msvc什么的,因为我的项目是32位 msvc编译的,所以我选择 2019 32-bit
弹出cmd
进入到刚刚我们拷贝exe的文件路径,这里是拷贝以后的,新的exe的路径
输入指令: windeployqt -qmldir qml的路径 拷贝后的exe
这里需要注意!也是坑我最久的地方,刚开始我是输入windeployqt 新exe 但是打包出来的exe执行后没有东西显示,后来发现是没有加qml文件
我的可执行exe是InstallLoadingDemo.exe
qml文件路径在exe的上一级的InstallLoadingDemo/qml中
如果带qml文件的话我的指令就是
windeployqt -qmldir ../InstallLoadingDemo/qml InstallLoadingDemo.exe
不带qml的指令是
windeployqt InstallLoadingDemo.exe
ps:把我的程序名替换即可
执行后,就打包成功了。
因为我的需求要在main函数中传参,所以输入如图指令试了下,是成功了
3.接下来封包
我用的是 Enigma Virtual Box 百度下载即可
下面的输出虚拟文件的名称和路径是自动填充的,可以修改,我一般不会修改路径
点击文件选项,选中压缩文件,会让生成的文件内存小一点
点击添加,添加什么呢,就添加刚刚执行的exe文件的目录下的相关库
这里有个小提示,网上的教程都是一个文件一个文件加,文件夹也是一个一个加,太麻烦了!我随手试了一下拖动,可以的,直接把除了exe之外的所有文件和文件夹直接拖入会方便很多
使用默认就行,确定即可
最后一步,打包
在生成目录下,多了一个exe,就可以直接运行了。不过为什么这个exe这么大,不清楚,可能是有的库没有用到的也被封进去了,先成功再说吧!
这篇关于Qt5 程序封包exe的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!