Qt程序打包发布

概述:

我们在开发Qt项目时,难免会遇到程序打包发布的问题。有的时候我们将程序编译生成一个程序,放到别人的电脑上就运行不起来了。
这是因为别人的电脑上没有安装开发环境。其实如果我们自己讲生成的可执行程序包换个路径再打开,也许你就运行不了了。提示少了某些库。因此就设计到打包问题。将我们的可执行程序不管发到哪个路径、放到谁的电脑上,都能运行起来。那么该怎么打包程序发布呢?

步骤:

1 首先我们需要编译一个release版本的可执行程序。

2 将可执行程序拷贝到一个你打包的文件夹(建议新建一个文件夹用来打包发布程序)。

3 找到电脑上windeployqt.exe的路径 (这里我的路径是在:D:\Qt\setup\5.6\mingw49_32\bin\windeployqt.exe)

4 然后建立一个脚本来执行打包。这里我建立一个run.bat,脚本中的内容为
D:\Qt\setup\5.6\mingw49_32\bin\windeployqt.exe xxx.exe
pause
注:第一行为打包工具的路径 后面跟可执行文件名字

5 接着双击run.bat就可以自动将可执行程序依赖的库打包到文件夹中了。

6 双击运行可执行程序,没问题的话就可以将文件夹压缩发布了。

注意:

运行run.bat将依赖库拷贝到文件夹后,一定要测试下。有时候windeployqt.exe也不一定能够拷贝完全。如一些第三方库,由于windeployqt.exe是Qt提供的,这些第三方库不见得能找得到。这时候需要手动将其拷贝到当前文件夹中来,还有项目中用到的动态库也需要手动拷贝到文件夹中来。



这样必要的库文件就自动添加完毕.

 

2.一般情况下,还是会少一两个.dll 用depends软件检测一下,看看还缺什么?

 

找到除了API-MS的包,在D:\QT\QT5.4.1mingw\5.4\mingw491_32\bin目录里面复制到软件的根目录。

 

3.前两步下来,dll彻底找完了,现在就该轮到打包工具 EnigmaVirtual Box

 

 

在“Enter Input File Name”一栏指定Qt编译生成的 *.exe 文件,同时在“EnterOutput File Name”一栏会自动生成打包后输出文件的路径和文件名称。(请无视中间的广告!)

点击左下方的“Add…”按钮,添加所有的依赖链接库文件;然后点击右下方的“FilesOptions”,在弹出的对话框里选中“Enable Files Virtualization”和“CompressFiles”两项;“OK”后返回点击“Process”并等待小伙伴干完该干的活。

 

在“Enter Input File Name”一栏指定Qt编译生成的 *.exe 文件,同时在“EnterOutput File Name”一栏会自动生成打包后输出文件的路径和文件名称。(请无视中间的广告!)

点击左下方的“Add…”按钮,添加所有的依赖链接库文件;然后点击右下方的“FilesOptions”,在弹出的对话框里选中“Enable Files Virtualization”和“CompressFiles”两项;“OK”后返回点击“Process”并等待小伙伴干完该干的活。

 

 

这样你就成功了。


 

 

Qt5.4  主要依赖链接库说明

1.QT模块库

 

1

2

3

4

Qt5Core.dll      #QT核心库

Qt5Gui.dll       #QT Gui库

Qt5Widgets.dll   #QT Widgets库,QT 5中GUI程序基本都需要此dll

#还有其他程序用到的Qt5XXX.dll

 

2.ICU依赖库

(International Component for Unicode,Unicode工具)

 

1

2

3

icudt51.dll     

icuin51.dll    

icuuc51.dll   

 

3.QT插件库(新增库,路径必须正确)

 

1

2

3

4

5

6

# 根据不同的程序,需要不同的插件库

#例如 QT_DIR/plugins/*/*.dll

# 需要将 platforms/*.dll,accessible/*.dll的文件结构保留

# 放在你所编译的程序所在目录

plugins/platforms/qwindows.dll

plugins/accessible/qtaccessiblewidgets.dll

 

4.EGL依赖库,为OpenGL,OpenGL es提供接口

 

1

2

libEGL.dll

libGLESv2.dll

 

5.mingw依赖库(msvc编译则无需这些库)

 

1

2

3

libgcc_s_dw2-1.dll

libstdc++-6.dll

libwinpthread-1.dll

 

6.VC运行库(mingw编译则无需这些库)

 

1

2

msvcr110.dll(对应VS2012)

msvcp110.dll






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值