• 5695阅读
  • 6回复

qt 动态编译 静态发布! [复制链接]

上一主题 下一主题
离线arlyb
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-24
将Qt 动态链接生成的exe及依赖dll打包方法

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


这是我测试过的,用MoleBox Pro测试不可用,提示内存错误
给大伙发一个下载地址:thunder://QUFodHRwOi8vM2R4d3QucGM2LmNvbS9nbTEvRW5pZ21hVmlydHVhbEJveC56aXBaWg==/




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



这里,我们以test.exe为例,在Qt环境下,将exe运行起来,在ProcessExplor中,找到就可以找到test.exe,选中,在下面就看到依赖的dll了。
系统目录下的,一般不用关心,按Path排序,看Qt目录及mingw目录下的,将这些dll拷贝出来,单独放到一个目录下。


三,打包
打包工具,这里选用Enigma Virtual Box,
下载:http://pan.baidu.com/share/link?shareid=463989&uk=673227135安装,运行

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

离线ashe0817

只看该作者 1楼 发表于: 2014-06-25
严格来讲,你这个应该叫绿色版。
静态编译和动态编译是二进制的不同,最明显的体现是文件大小都不一样。
离线arlyb

只看该作者 2楼 发表于: 2014-06-26
回 ashe0817 的帖子
ashe0817:严格来讲,你这个应该叫绿色版。
静态编译和动态编译是二进制的不同,最明显的体现是文件大小都不一样。 (2014-06-25 22:04) 

嗯,是的。只不过有时候方便而已。
离线wjepdb

只看该作者 3楼 发表于: 2014-06-30
这都啥和啥呀,业余说法,噱头而已。
离线adonais

只看该作者 4楼 发表于: 2014-07-01
依赖的dll动态库好找,依赖的插件库很麻烦.
离线arlyb

只看该作者 5楼 发表于: 2014-07-01
回 wjepdb 的帖子
wjepdb:这都啥和啥呀,业余说法,噱头而已。 (2014-06-30 00:28) 

嗯,本人很业余。只是乱说。
离线arlyb

只看该作者 6楼 发表于: 2014-07-01
回 ashe0817 的帖子
ashe0817:严格来讲,你这个应该叫绿色版。
静态编译和动态编译是二进制的不同,最明显的体现是文件大小都不一样。 (2014-06-25 22:04) 

嗯,你这么说很准确。
快速回复
限100 字节
 
上一个 下一个