Qt发布程序
一、作用
将Qt软件打包发布成绿色exe,在任意非Qt环境下运行
二、找到我们软件所依赖动态库
使用Qt的windeployqt.exe(在Qt安装目录的bin下面找)--!
1、新建文件夹,在里面放入:发布版的exe执行文件;在bin下面复制的windeployqt.exe;新建txt文件,后缀改为bat(脚本)
2、编辑脚本:windeployqt myApp.exe
3、双击脚本
4、此时会在此文件夹里生出这个软件所需要的所有动态库和依赖项;此时还不够,再在Qt bin下面找到文件夹:bearer、iconengines、platforms三个文件夹(此时或许在其他电脑上会依然缺少一些dll,在bin里找就行了)
三、使用打包enigma软件打包
经过上面可以得到一个文件夹,结构如下图

1、打开enigma,选择上面release下的exe

2、将所有文件夹和动态库拖进文件区

拖入文件夹时会有个窗口弹出,确定即可
3、选择文件选项,勾选压缩文件

4、点击执行封包,等待完成。然后会在文件夹里找到封装完成的exe,此时这个exe已经可以在非Qt环境下运行

ps:
1、上述打包成的exe可能会比较大,是因为含有不需要的动态库和文件,参考https://www.cnblogs.com/judes/p/7081245.html可去除不必要的文件,最后生成的exe大概在10M左右
2、上述是针对于纯Qt开发环境【QtCreator】打包;如果是Vs+Qt使用此方法会出现奇怪的现象【明明是release的exe,生成的dll全是debug的,所以dll找到全对不上】;如果是Vs+Qt,可以打开Qt自己的命令行工具

来手动输入windeployqt myApp.exe,然后再打包
Qt发布程序的更多相关文章
- VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...
- Qt for Mac:发布程序(widgets和quick2)
当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴 可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行. 比较幸运的是,Qt ...
- 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...
- Linux下Qt应用程序的发布(使用LDD命令查看所有依赖的库文件)
最近一直在学习Qt,用Qt写了一个程序,但是不知道怎么发布,网上说的都是在windows下怎么发布Qt应用程序,但是,在windows下Qt应用程序依赖的库文件与linux下的名字不同.于是,我就想到 ...
- QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法
QT编译发布程序后报错如缺少dll.“应用程序无法正常启动(0xc000007b)”的可能解决方法 最近项目要用qt,因为初学没有经验,遇到些小问题常常没什么头绪,也查不到解决方法,刚刚还因为低端错误 ...
- Qt之程序发布以及打包成exe安装包
一.简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工 ...
- QT如何发布程序
QT如何发布程序转载 http://blog.csdn.net/iw1210/article/details/51253458
- 【Qt开发】Qt应用程序发布封装
问题:在使用Qt5.3.2编写程序并release,文件夹中已经添加了必要的dll,但在其他机子上运行程序失败,出现了下面的情况: 解决方法一:在C:\Qt\Qt5.3.2\5.3中进入mingw48 ...
- Qt应用程序的发布
1 Windows平台上的应用程序发布 Windows发布工具 windeployqt.exe是Qt自带的Windows平台发布工具.windeployqt.exe文件在Qt的bin目录下,Qt的每一 ...
随机推荐
- JAVA的protected权限
1.派生类能够訪问父类的protected数据.这是毫无疑问的. 2.今天做Think in java的习题发现,同一个包内的一个类调用还有一个类的protected数据是能够的.代码例如以下: pa ...
- iOS面试题--Model层--沙盒的目录结构是怎么样的?各自一般用于什么场合?
沙盒的目录结构是怎么样的?各自一般用于什么场合? 一.iOS沙盒机制 iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下,包括图片,属性文件plist,bun ...
- UIWebView加载ANSI格式的txt文件出现乱码问题解决
//若为txt文档 if([encodedString hasSuffix:@".txt"]){ NSData* Data = ...
- bloom filter + murmurhash
是一种hash方法,其实核心思想就是,将一个字符串通过多个普通hash函数映射到hash表上,然后再进行检索的时候同样计算hash函数,如果全都都hash表上出现过,那么说明有极大的可能出现过,如果没 ...
- Linux下Solr的安装和配置
一.安装 1.需要的安装包:apache-tomcat-7.0.47.tar.gz.solr-4.10.3.tgz.tgz(jdk自行安装) 2.解压tomcat并创建solr文件夹 [root@lo ...
- 关于org.apache.shiro.SecurityUtils.getSubject().getSession()
Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); s ...
- javascript数组遍历for与for in区别详解
js中遍历数组的有两种方式 复制代码代码如下: var array=['a']//标准的for循环for(var i=1;i<array.length;i++){ alert(array[ ...
- MySql 自适应哈希索引
一.介绍 哈希(hash)是一种非常快的查找方法,一般情况下查找的时间复杂度为O(1).常用于连接(join)操作,如Oracle中的哈希连接(hash join). InnoDB存储引擎会监控对表上 ...
- 通过Python操作hbase api
# coding=utf-8 # Author: ruin """ discrible: """ from thrift.transport ...
- python 里安装 tensorflow 后运行出错的问题解决
如果出现一下错误: libcublas.so.8.0: cannot open shared object file: No such file or directory 原因是没有 cuda 环境, ...