Qt 代码打包
1.打开qt工程输出目录的bin文件夹,将其所有的拷贝到新建的文件test中;
**
1.1 将QT安装目录下: “msvc2015_64/qml” 文件夹中的内容拷贝至 “test”文件夹中。
2. 同时,将Qt 安装目录中的 qml 文件夹中的内容拷贝至 test 中
**
3.打开 “开始”,搜索Qt
4.打开Qt 5.11.1 64-bit for Desktop(MSVC 2015)
5. 接着输入命令行,cd /d 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),点击回车:
6. 输入如下命令行:windeployqt 程序名与qml的安装路径, 敲击回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件。
例子:我当前的qml路径为:D:\anzhuangPath\Qt\Qt5.11.1\5.11.1\msvc2015_64\qml
注意:
1.如果使用到了Qt Quick,打包的命令记得要增加“–qmldir (加上Qt安装路径中QML文件夹的位置)
2.如果打包之后不能运行,则打包后还要将“msvc2015_64\bin”中的“Qt5Core.dll”复制并替换掉打包文件夹(需要打包的exe文件所在目录)中的“Qt5Core.dll”。 该操作可以在打包之前就进行替换
运行结果:
7.利用Inno Setup进行程序打包
Inno Setup下载路径、Inno Setup打包路径
https://www.sogou.com/sie?hdq=AQxRG0000&query=inno%20setup&ie=utf8
https://jingyan.baidu.com/article/647f0115e928b37f2048a843.html
7.1 将item_1.exe从test文件夹中移除,放置到其他位置,如桌面:
7.2 打包步骤
选择添加文件夹:(1)test文件夹;
(2)Qt运行时生成的release文件夹:
E:\QtCode\build-item-Desktop_Qt_5_11_1_MSVC2015_64bit、Release\item_1\release
点击下一步。
至此,编译成功!
注意:若提示不能编译,重启电脑,再继续6.2节。
8.打包之后,再其他电脑上运行时,若出现异常,无非是dll库没有加载正确,解决方法如下:
8.1 将 qt 安装目录中"…\5.11.1\msvc2015_64\bin " 中的内容复制到打包文件安装目录中(可排查是缺哪一dll)
8.2将vs所需的两个dll放置到 .exe文件夹中
8.3 下载安装windbg
https://www.sogou.com/sie?hdq=AQxRG-0000&query=windbg&ie=utf8
8.3.1 点击 “file-Open Executable…”,分别在进行打包电脑的上与需要解压电脑上,选择 .exe文件,对比一下,看需要解压电脑上缺什么库,就将进行打包电脑上相应路径下的文件拷至需要解压电脑上相同的路径下即可。
**8.4 由8.3,已经列出了一些缺少的dll在文件夹中,可以直接拷过去。
https://download.youkuaiyun.com/download/qq_33551738/11437860
8.4.1 缺少系统dll的情况**
可能会提示无法正常启动(0xc000007b),则将dll-7.24文件夹中的dll文件存放至:64位的:C:/Windows/Syswow64 。 将32位的放至 C:/Windows/Syswow32 。
此外, 也可下载DirectX修复工具,修复系统缺少或者损坏的一些dll,如:d3dx9_39.dll、d3dx9_40.dll、d3dx9_41.dll、d3dx9_42.dll、d3dx9_43.dll、xinput1_3.dll !!。
8.5 此外,可能需要参考的网址:
1)https://zhuanlan.zhihu.com/p/31003472
2) https://www.sogou.com/sie?hdq=AQxRG-0000&query=DirectX%E4%BF%AE%E5%A4%8D%E5%B7%A5%E5%85%B7&ie=utf8