标签:windows http qt 安装 nal virt process ima 解决方法 proc
本文讨论在 Windows 平台下编译成功的 Qt 程序,如何在未配置 Qt 开发环境的 Windows 平台下独立运行的方法。
经过验证发现,在 Ubuntu 平台下编译成功的程序可在未安装 Qt 开发环境下的 Ubuntu16.04 中运行,所以,本文仅讨论,在 Windows 平台下编译成功的 Qt 程序,在未配置 Qt 开发环境的 Windows 平台下独立运行的方法。
如若想要发布程序,在 IDE 中编译一定要选择 release
而不是 debug
,编译成 release 版本相比于 debug 版本,程序体积「可执行文件和 dll 文件」大大减小;
编译为 release 版本之后,找到生成的目录,其中只有 exe 扩展名的可执行文件是有用的。
直接打开可执行文件,会提示找不到 dll 文件,解决方法如下:
在 cmd 中,运行如下命令:
<Qt目录>\Qt5.5.1\5.5\mingw492_32\bin\windeployqt.exe <*.exe>
程序会找到该可执行程序所需的所有依赖文件,并集成进该可执行文件所在的目录:
有时程序会提示找不到所需的 gcc.exe,只需要将随 Qt 安装的 mingw 的 bin 目录添加到系统的环境变量中即可。之后执行可执行文件即可成功运行。
这里,我们可以用 Process Explore 来获取所依赖的 dll 文件「Dependency Walker软件也是不错的选择」
打开 procexp.exe,选择菜单 -> View -> Lower Pane View ->DLLs 勾选此选项,显示 dll 窗口。
在 Qt Creater 中,调试运行要发布的程序,在 Process Explore 中,找到该 exe 文件并选中,在下面就看到依赖的 dll 了。
Process Explore寻找依赖
Dependency Walker寻找依赖
系统目录下的,一般不用关心,按 Path 排序,寻找 Qt 目录及 mingw 目录下的 dll 文件,将这些 dll 拷贝至发布程序目录下。
以 mingw 版 Qt 为例「VS版本安装目录有些许不同」,dll 文件在 Qt 安装目录下:
<Qt安装目录>\Qt5.5.1\5.5\mingw492_32\bin
找到所有所需的 dll 文件,复制到要发布程序的目录下
例如,本程序需要如下依赖:
打包工具,这里选用 Enigma Virtual Box,运行软件,选择发布程序的可执行文件路径以及生成文件的路径,左下角的“添加”按钮添加所有的 dll 文件,不包含刚才选择的 exe 文件。点击右下角的「文件选项」,选中「启用文件虚拟化」以及「压缩文件」,如图所示:
最后点击右下角的“执行封包”,生成的 exe 文件的容量小了很多,并且这是一个纯粹的「绿色软件」,直接复制就能在任何存储介质上运行了。
根据不同的程序,需要不同的插件库。例如 QT_DIR/plugins/*/*.dll
,需要将 platforms/*.dll
, accessible/*.dll
的文件结构保留,放在你所编译的程序所在目录,例如:
plugins/platforms/qwindows.dll
plugins/accessible/qtaccessiblewidgets.dll
标签:windows http qt 安装 nal virt process ima 解决方法 proc
原文地址:http://www.cnblogs.com/fushou/p/7489271.html