2015年5月16日星期六

Qt 在win上发布打包dll生成exe方法

Reference: http://www.tripleboot.org/?p=138#more-138
       http://blog.csdn.net/maverick1990/article/details/9123785
Qt静态编译链接生成的exe文件,不需依赖七大姑八大姨的一堆dll,可以独立运行,发布很方便。但绝大多数用的都是Qt开源版本,如果用静态链接,会有些限制。那有没有办法即能享受静态编译的方便,又不受开源许可的限制呢?方法之一,就是用动态编译,然后把exe和需要的dll整合成一个文件,问题就解决了。
具体步骤:
一,先动态编译链接,生成exe文件
二,找到依赖的dll文件
这里,我们可以用Process Explore来获取所依赖的dll文件

打开procexp.exe,通过菜单View==》Lower Pane View==》DLLs 勾选,显示dll窗口






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








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


换台电脑会出现如下的问题
This application failed to start because it could not find or load the Qt platform plugin "windows".
Reinstalling the application may fix this problem.

解决办法是
建一个文件夹 叫做 platforms 把qwindows.dll放进去就可以用了




没有评论: