原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://goldlion.blog.51cto.com/4127613/834075

引子

由于 AnimatePacker的打包发布用的是Qt动态编译,且为了给没有Qt环境的朋友使用,会集成一些dll,所以造成了一些不便。(策划和美术都喜欢一个exe的东西吧= =)

个人对Qt静态编译不怎么感冒,大约是因为比较折腾,所以一直没弄。

近几年各种虚拟化工具迅猛发展,易用性和稳定性越来越好。最近尝试了一下,可以用,也比较简单,所以整理一下。对于我们开发一些常用的文本工具以及游戏编辑器来说,足够用了。

注意:我的环境是指windows下,如果你在其他环境下使用,本篇末尾有一个和Qt开发群友人生如戏(921742079)的对话,可以参考。

第一步、编译你的exe

使用release模式,动态编译exe,这个没得说,正常Qt开发的操作。

第二步、获取依赖的dll

在windows下面,动态发布Qt程序,需要获取你需要的dll,然后和exe放到一起发布

有两个工具可以获取你需要的dll

工具1:Dependency Walker

打开此工具直接将你的exe拖拽进去即可,然后窗口中会显示exe依赖的dll

优点是:他会找到发布需要最少的dll,有利于我们做体积小的发布包。

缺点是:虽然我们做程序的一般都会把path系统变量配置好。这个工具比较傻,只会在system32下找,并不能找到所有dll的真正路径。

工具2:Process Explorer

这个工具需要你首先运行exe,然后找到exe的进程,就可看到依赖的dll了

优点是:他会找到所有需要的dll的路径

缺点是:会把一些加载的插件dll和其他一些非必需的dll也显示出来。

你可以选择这两个工具同时使用,或者用其中一个。

第三步、使用虚拟化工具打包压缩

本篇文章的主角出场,他叫:Enigma Virtual Box。名字很猛,翻译过来就是:英格码虚拟盒。

这个工具也非常简单

操作如下:1.设置exe 2.拖拽dll到窗口 3.打开文件选项 4.启用压缩

然后我们点“执行封包”就可以了。

最终产品:

参考文献:

http://hi.baidu.com/cyclone/blog/item/d77a86182fb915b84bedbc57.html

附录:关于Qt个平台发布的对话

goldlion(233424570) 11:20:04 
请教个问题
如果用Enigma Virtual Box之类的软件,打包发布Qt动态编译的共享软件,或免费软件
和静态编译相比,怎么样?
人生如戏(921742079) 11:21:18 
你指什么怎么样?
效率?
一样慢
goldlion(233424570) 11:21:32 
恩,综合考虑吧
人生如戏(921742079) 11:22:00 
放自己目录里面,没事
goldlion(233424570) 11:22:34 
我现在主要是对这两者效率差别,没有数值上的概念
哈哈
人生如戏(921742079) 11:23:19 
我试过的,一样慢
不过你要用三方的工具打包,可能会更慢一点
goldlion(233424570) 11:23:41 
是哦
人生如戏(921742079) 11:23:45 
因为三方的工具可能是用来加密的
goldlion(233424570) 11:24:57 
静态编译一般用来发布商业软件吗?对速度要求高的一般是哪些商业软件?
我只是用Qt写一些文本工具,和游戏编辑器,不接触商业发布这块东西= =
人生如戏(921742079) 11:26:03 
没太大区别
linux下,我一般静态 
windows和mac下,动态
mac下qt有打包工具
windows下么,找到dll,放一起就可以了
linux下,很多库有的机器有,有的没有,最好还是静态一下
goldlion(233424570) 11:27:16 

非常感谢

本文出自 “做游戏的老G” 博客,请务必保留此出处http://goldlion.blog.51cto.com/4127613/834075

win环境下,用虚拟化工具打包Qt动态编译exe的过程(使用Enigma Virtual Box)的更多相关文章

  1. Win环境下的文件读写

    在win环境下,有许多方法可以对文件进行读写操作,如MFC 中的CFile类,及一些开源的项目如QT中的QFile.开源的好得是可以多平台,而MFC只是微软自家的东西,对于想写跨平台的人,最好不用MF ...

  2. 不需要用任何辅助工具打包Qt应用程序

    不需要用任何辅助工具打包Qt应用程序.方法如下:    生成release文件后,双击里面的exe文件,会弹出一个对话框,里面提示缺少哪一个DLL文件, 然后根据该文件名到你安装QT软件的目录下的/b ...

  3. Android Studio环境下代码混淆+签名打包

    Android Studio环境下代码混淆+签名打包 作者 Mr_冯先生 关注 2016.08.21 01:10 字数 1040 阅读 734评论 5喜欢 34 注:本文使用的Android Stud ...

  4. Win环境下Oracle小数据量数据库的物理备份

    Win环境下Oracle小数据量数据库的物理备份 环境:Windows + Oracle 单实例 数据量:小于20G 重点:需要规划好备份的路径,建议备份文件和数据库文件分别存在不同的存储上. 1.开 ...

  5. 在Win环境下配置java的环境进行开发步骤

    1.下载官方JDK,网址如下 http://www.oracle.com/technetwork/java/javase/downloads/index.html

  6. win 环境下 node.js环境变量

     在win 环境下 node.js环境变量有两种情况:  (1)开发环境(development):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告. ...

  7. win环境下安装配置openCV-4.3.0

    win环境下安装openCV-4.3.0 首先下载 推荐国内镜像 官网太太太慢了 附上 下载地址 下载之后打开exe解压到目录都是常规操作 环境变量的配置 依次打开到系统变量的path 新建一个路径为 ...

  8. Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)

    一.使用单文件封包工具 单文件封包工具,顾名思义就是将可执行文件及其相关依赖打包成单个可执行文件的工具. 这里推荐两个单文件封包工具:Enigma Virtual Box和BoxedApp Packe ...

  9. Hyperledger fablic 1.0 在centos7环境下的安装与部署和动态增加节点

    Hyperledger fablic 1.0 在centos7环境下的安装与部署和动态增加节点 一.安装docker 执行代码如下: curl -sSL https://get.daocloud.io ...

随机推荐

  1. Playmaker Input篇教程之Playmaker购买下载和导入

    Playmaker Input篇教程之Playmaker购买下载和导入 Playmaker Input篇认识Playmaker Playmaker是Unity的插件,其标志如图1-1所示.开发者使用它 ...

  2. http://my.oschina.net/chinacion/blog/647641

    http://my.oschina.net/chinacion/blog/647641

  3. BZOJ2789 : [Poi2012]Letters

    按照顺序依次找到b串每个字母最后的位置,然后求逆序对. #include<cstdio> #define N 1000010 int n,i,j,k,g[26],nxt[N],bit[N] ...

  4. 【转】执行脚本出现bin/bash: bad interpreter: No such file or directory

    [转自]http://blog.csdn.net/wind19/article/details/4822666 错误原因之一很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以/r/n来标识, 其 ...

  5. UVa 11181 条件概率

    题意:n个人选r个人,每个人被选中的概率为pi,问最后每个人被选中的概率是多少. sol:就是个简单的概率题,范围还特别小,深搜秒出...然而公式什么的很多还是需要注意的...     条件概率的公式 ...

  6. 【BZOJ】1877: [SDOI2009]晨跑(最小费用最大流)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1877 费用流做多了,此题就是一眼题. 拆点表示只能经过一次,容量为1,费用为0. 然后再连边即可,跑 ...

  7. FFT模板

    我终于下定决心学习FFT了. orzCHX,得出模板: #include<cstdio> #include<cctype> #include<queue> #inc ...

  8. Configuration of OpenCV2.1.0 with VS2010

    Add in the system Path: C:\Program Files (x86)\OpenCV-2.1.0\build\bin\Debug Project->Project Prop ...

  9. lightning mdb 源代码分析(4)—MVCC/COW

    本博文将描述MVCC和cow技术以及LMDB中如何使用以及实现这两种技术. COW(Copy On Write): COW技术背后的思想是拖延技术,基本方法是假如有多个调用者需要访问的资源,在其初始化 ...

  10. c#中分布方法和分部类

    将同一个类编写在多个文件中,类的各个文件名不同,类名相同,类名前加partial关键字,这种类型叫分部类. 在分部类中可以建立分部方法,方法名前加关键字partial,分部方法只能将方法分成两部分,即 ...