qt 5 发布技巧

QT5 发布时,莫过于依赖动态链接库(dll) , 但是,QT5的动态链接库貌似都有2套 ,例如 Qt5Core (针对realese) , Qt5Cored (针对debug) ,凡事末尾带d的都是debug文件需要的链接库,莫嫌博主啰嗦

A 关于发布

1.首先,我们得找到自己安装QT的目录

2.找到上述路径 Qt/5.4/mingw491_32/bin

3.在路径中找到9个必须基本dll,其中分为3类

(1)icu库

(2)lib类

(3)Qt5核心类

这是发布的必须的基本动态链接库,如发布大程序,需加其他库,这里不一一说明,可以使用Depends这个工具查找需要什么库。

(4)除此之外,还必须带的文件夹有Qt/5.4/mingw491_32/bin/plugins中的platform文件夹,需复制到与exe同目录,如图所示

注意,如使用了ico图标必须加上Qt/5.4/mingw491_32/bin/plugins中的iconengines,如不清楚,可以将整个plugins文件夹复制过来,即可顺利完成发布。

B 关于打包

1.推荐大家使用一个特别方便的软件 Enigma Virtual Box_7.30 ,绿色免费。

2.从工程文件找出realese/xx.exe文件,路径如下

3.新建一个文件夹,将找到的dll库以及platform等文件夹与主目录放在一起,如A(发布中的第(4)步)

4.找到自己编译器产生的exe文件,蓝色部分可改名

5.增加你放好dll和platform的文件夹

6.然后点击文件选项,勾选压缩文件。执行封包即可

方法二

Qt使用自带的windeployqt 查找生成exe 必需的库文件

集成开发环境 QtCreator 目前生成图形界面程序 exe 大致可以分为两类:
Qt Widgets Application  和 Qt Quick Application
下面分别介绍这两类exe 的发布方式。

第一类 Qt Widgets Application 可执行程序发布方式

意思是创建的 Qt Widgets Application 项目

下面来发布软件:

 Release 方式编译生成 exe 程序,也就是调试运行的方式选择Release

将 生成的exe 可执行文件复制到 别的文件夹下,这里我复制到F:\qtsetup下

在开始菜单Qt5.5.0下找到Qt5.5 for Desktop cmd运行文件,打开运行

cmd进入F:\qtsetup下, 执行命令windeployqt *****.exe

回车

自动在该路径下生成exe所有需要的运行环境(dll+各种文件夹)

运行结束可以直接点击exe运行了,这样可以避免一个个所需要的的文件查找,然后在copy过来

时间: 2024-10-02 18:25:12

qt 5 发布技巧的相关文章

Qt Creator 使用技巧

文章 由 flycarl 在 21 Dec 2010 创建 最后由 hamishwillee 在 13 Jun 2012 编辑 Contents 1 简介 2 代码浏览 2.1 定位器(locator) 3 代码编辑 4 断点调试 5 平台管理 6 项目管理 6.1 编译参数(Build) 6.2 运行参数(Run) 7 相关链接 简介 Qt Creator 作为Qt 开发的IDE,支持Qt 开发,及QML开发,能很好的发挥Qt 跨平台的特点,这里列举一些Qt Creator的使用技巧, Qt

Qt开发设置技巧

Qt在开发桌面客户端方面有很多方面做的很好,功能很强大,在免费并能跨平台的开发库里,做到了可以很好的满足一般客户端开发的需求.Qt库不光在界面上,而且在XML解析,JSON数据解析,网络通讯等各个功能点,都已经具备了好用的开发类库.Qt尤其在图形化处理方面有着自己很不一般的体验,和功能. 下面我结合我的开发经历,对Qt的一些功能点和用法进行一些小结,希望给开发者提供一些有用的帮助,共同学习. (一) 自定义窗口的开发. 我们在开发项目中,经常需要开发一个视觉设计人员给定好的窗口,我们用Qt开发这

QT高级编程技巧(二)-- 编写多线程和并发应用

学习QT多线程编程之前,有必要先熟悉事件循环的概念.先看一个单线程界面程序的主函数代码: int main(int argc, char* argv[]) { QApplication app(argc, argv); // 构造主窗口对象并显示 MainWindow w; w.show(); // 进入事件循环 return app.exec(); } 在程序初始化完成后,主线程进入main()函数开始执行应用代码.一般地,我们在主线程上构建界面对象,然后进入事件循环以处理控件绘制.用户输入.

Qt实用小技巧(转)

原博网址:http://www.cnblogs.com/feiyangqingyun/archive/2010/12/06/1898143.html 1.如果在窗体关闭前自行判断是否可关闭答:重新实现这个窗体的 closeEvent()函数,加入判断操作 void MainWindow::closeEvent(QCloseEvent *event){   if (maybeSave())   {writeSettings();event->accept();   }   else   {even

基于vs2005以上版本Qt程序发布的注意事项(讲了manifest的问题)

最近发现了一个非常恼人的程序deployment的问题,估计大家有可能也会遇到,特此memo. 问题的出现我觉得主要还是微软搞的花头太多, 一个不知所谓的manifest文件让本来简单的程序发布变得困难重重. 找了找关于manifest的介绍,貌似这个文件是用来描述程序或者库的依赖关系, 特别是对程序依赖的版本进行描述, 这样系统可以通过manifest的内容找到正确的库版本. 理论上讲这个dd确实是不错, 可以解决版本不兼容的问题, 保证程序运行的时候用的是指定版本的库. 不过实际操作起来麻烦

Qt 程序发布

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,Qt 官方开发环境里自带了一个工具:windeployqt.exe.在Qt安装目录如:C:\Qt\Qt5.7.0\5.7\mingw53_32\bin\windeployqt.exe. 在集成开发环境 QtCreator 中可选择 “Qt Widgets Application” 或 “Qt Quick Application” 两种方式生成图形界面应用程序. 1. Qt Widgets Applicati

解决Qt程序发布时中文乱码问题(通过QApplication.addLibraryPath加载QTextCodec插件)

Qt程序的文字编码,是通过插件来解决的,所以我们发布的时候需要把相应的插件也发布出去,在开发者电脑上程序会自动从插件目录加载到插件,但是如果发布给别的电脑使用,需要手动指定插件路径,如下所示: int main(int argc, char *argv[]) { QApplication a(argc, argv); QString strLibPath = a.applicationDirPath(); strLibPath += "/plugins"; //plugins就是插件目

Qt 软件发布与打包

Windows 7, X64 平台 比较烦琐的方式是,运行Qt*.exe 程序,提示缺少 *.dll, 将缺少的*.dll拷贝到目录中,感觉比较麻烦还容易出错!网上大半都是这样文档,想想 QT 应该有解决这此笨办法的工具(windeployqt), Qt 5程序在Windows上的发布 将所有依赖的库整理好,放在目录中运行,打包! (缺点:存在多余的库) 使用 Process Explore / depends22_x64 等工具 获取所有的依赖库 (缺点:太麻烦了) windeployqt 找

解决Qt程序发布时中文乱码问题

Qt程序的文字编码,是通过插件来解决的,所以我们发布的时候需要把相应的插件也发布出去,在开发者电脑上程序会自动从插件目录加载到插件,但是如果发布给别的电脑使用,需要手动指定插件路径,如下所示: int main(int argc, char *argv[]) { QApplication a(argc, argv); QString strLibPath = a.applicationDirPath(); strLibPath += "/plugins"; //plugins就是插件目