realfan的个人主页

http://www.qtcn.org/bbs/u/123401  [收藏] [复制]

realfan

  • 87

    关注

  • 188

    粉丝

  • 2031

    访客

  • 等级:精灵王
  • 身份:论坛版主
  • 总积分:1488
  • 男,2011-01-01

最后登录:2024-04-23

更多资料

日志

将Qt 动态链接生成的exe及依赖dll打包方法

2013-03-28 17:28
Qt静态编译链接生成的exe文件,不需依赖一堆dll,可以独立运行,发布很方便。但绝大多数用的都是Qt开源版本,如果用静态链接,会有些限制。那有没有办法即能享受静态编译的方便,又不受开源许可的限制呢?方法之一,就是用动态编译,然后把exe和需要的dll整合成一个文件,问题就解决了。

具体步骤:
一,先动态编译链接,生成exe文件
二,找到依赖的dll文件
这里,我们可以用Process Explore来获取所依赖的dll文件
下载:
http://yunpan.cn/Qz6DIEwRvSgrU
打开procexp.exe,通过菜单View==》Lower Pane View==》DLLs  勾选,显示dll窗口

这里,我们以test.exe为例,
在Qt环境下,将exe运行起来,在ProcessExplor中,找到就可以找到test.exe,选中,在下面就看到依赖的dll了。


系统目录下的,一般不用关心,按Path排序,看Qt目录及mingw目录下的,将这些dll拷贝出来,单独放到一个目录下。

三,打包
打包工具,这里选用Enigma Virtual Box,
下载:
http://yunpan.cn/Qz6zy7KNBsvkw
安装,运行

Enter Input File Name中,选择exe
Enter Output File Name,输出文件名称
点Add按钮,将前面准备好的dll文件,添加进来
点Files Options,勾选Enable Files Virtualization和Compress files,OK
最后,点Process,大告成。打包生成的exe文件也可以象静态编译的一样,可以独立运行了。








分类:默认分类|回复:14|浏览:7907|全站可见|转载
 
 
删除

流星321:楼主,我的软件打包后拷到没有装Qt的电脑上运行,中文显示不了,后来把汉字编码库和其它的一些插件库按qt的安装的结构加进去,其它的插件库的运行路径是我添加的,而汉字编码库的路径却是qt安装的路径,楼主求指点

2014-06-29 22:19 -
删除

alai881020:如果打包QT的插件呢?也是一样添加插件的库进去吗?但是插件的路径要求在plugins目录下的

2014-01-11 13:27 -
删除

alai881020:提示病毒的...

2013-12-10 15:32 -

realfan:是哪个文件被提示病毒?

2013-12-10 16:43
删除

qunero:顶楼主大神,不过百度盘上分享的文件好像到期了,“啊哦,你来晚了,分享的文件已经被取消了,下次要早点哟。”

2013-08-15 15:49 -

realfan:已经更新了,再试一下吧

2013-08-15 16:38
删除

liyoujun:好用,尤其是楼主提示的那句.exe文件同目录下建立platforms文件夹放qwindows.dll类型文件的提示,太有用了。A++

2013-07-25 11:56 -
删除

as55623:相应的dll是不是要放在相应的文件夹?比如说打包的时候 你把qwindows.dll这个放在新建打包目录根目录下(和release的exe处于同一个位置),而原来是在Plugins\platforms\下的

2013-04-23 20:32 -

realfan:一般是要放在相应目录下的,但不要plugins,与exe同目录下,直接创建platforms目录,将qwindows.dll放到这个目录,其它插件类似

2013-04-23 22:24
删除

xsjqqq123:会不会被杀软Ko

2013-03-29 20:27 -
删除

hp_201111:用  depends.exe  可以不运行 Qt 程序, 查处 Qt 程序 依赖的dll。

2013-03-28 22:25 -

realfan:depends walker也是可以的,不过好像这个工具有点老了,2006年的。 感觉有时候,找的dll不全。而且只是指出要的dll,dll文件要自己去找。 process explore在exe运行起来,更保险地指定带路径的dll。

2013-03-29 09:02
删除

jeffreylee:这样打包成一个文件,体积变小了没有?

2013-03-28 20:34 -

realfan:勾选的压缩选项,会变小。我测试的,exe加dll总共13.4M,生成的exe为5.9M

2013-03-28 21:57

Powered by phpwind v8.7 Certificate Copyright Time now is:04-25 15:17
©2005-2016 QTCN开发网 版权所有 Gzip disabled