引言 新手上路可谓是困难重重,你永远不知道下一个困难会在什么时候出现,在完成了运动控制卡封装发布过程中可谓是举步维艰。因此记录一下qt5vs2019的打包发布方法。 打包整体思路:将编译后的exe可执行文件及其各种依赖dll、lib、图标、配置文件等先打包放到一个目录中对其进行打包发布(两种方式):利用VS的插件MicrosoftVisualStudioInstallerProjects安装程序打包插件进行打包利用EnigmaVirtualBox(单文件封装工具)进行打包一,将编译后的exe可执行文件及其各种依赖dll、lib、图标、配置文件等先打包放到一个目录中 (1)dumpbin指令查看可执行文件的dll依赖包 在VS开发人员命令提示符(vs界面工具命令行开发者命令提示)中执行dumpbindependents程序路径:dumpbindependentsC:UsersWFDDesktopGCtestDebugGCtest (2)windeployqt。exe指令自动将qt依赖包复制过来 1先打开Qt的命令行(用的32位) 2使用cdd路径命令进入到包含。exe文件的文件夹。 3Qt命令行执行windeployqt工具,输入:windeployqt。exe,就可以将qt依赖包复制到该文件夹中 (3)非Qt依赖库的添加 要注意release版本与debug版本所需要的依赖是不一样的,需要分别打包!!!方法一 在通过vs的dumpbin指令查询到可执行文件的dll依赖包后,使用eyerything软件根据位置去寻找dll文件。 下载地址:http:www。voidtools。com 方法二 如果动态库有很多那么复制起来很麻烦(比如上面Qtcore。dll查找到很多路径,但是不知道用哪个),可以使用window的批处理: 通过观察程序运行时Vs输出窗口中加载的dll库: 方法三 使用DependencyWallker打开。exe查找不存在的。dll,其中黄色的问号标识是不存在的。DependencyWallker可以递归显示可执行文件(exe)和动态库(dll)调用的动态库。 打开。exe文件之后各个节点可能是展开的很乱,可以右击任意节点选择折叠所有(L),然后再单击根节点的加号展开就是如图所示的样式,这样很清晰。 在全部添加完依赖库后,点击exe运行文件就可以本机运行了。或者将该文件夹全部发送给用户也可运行。 点击领取Qt学习资料视频教程链接 那么如何只使用一个exe文件就完成程序的运行呢? 这就要用到下面要说的打包和发布了。二,利用VS的插件MicrosoftVisualStudioInstallerProjects安装程序打包插件进行打包 安装过程不再详述参见:InstallerProjects插件的安装 (1)新建安装项目 解决方案新建项目setupproject 进入文件系统:(setup1view文件系统) (2)添加文件 ApplicationFolderadd文件(在此添加相关的依赖资源) 将exe所在目录下的所有文件添加到该处 (3)添加项目输出 ApplicationFolderadd项目输出(主程序入口) 对主输出创建快捷方式,并将其拖动到User‘sDesktop内 (4)打包发布 对setup1项目进行重新生成,即生成安装程序 三,利用EnigmaVirtualBox(单文件封装工具)进行打包 Enigma虚拟文件打包系统可以将程序和配套文件打包成一个可执行文件,而没有任何效率的损失,配套文件也不会被释放至硬盘。(同时支持X86和X64二进制文件)。 点击领取Qt学习资料视频教程链接 如图: 将生成的GCtestboxed文件复制到要运行的设备上即可(可以单独运行)