当前位置: 代码迷 >> QT开发 >> 编译好的程序如何在其他电脑上运行呢
  详细解决方案

编译好的程序如何在其他电脑上运行呢

热度:162   发布时间:2016-04-25 03:01:47.0
编译好的程序怎么在其他电脑上运行呢
我编译好的程序,release版的,想打包后在另一个电脑上运行,但是这个电脑上没有装Qt,运行时就会报错,缺少dll。
怎么知道我这个exe文件都需要什么dll文件呢,是不是把需要的dll都打包进去就可以在另一个电脑上运行了?
------解决思路----------------------
创建一个文件夹 : package,然后到Qt 的目录下,把plugins目录中的platforms文件夹和imageformats文件夹放到package中,然后打开Qt 的bin目录,将icudt51.dll、icuin51.dll、icuuc51.dll、Qt5Widgets.dll、Qt5Core.dll、Qt5Gui.dll 放到新建的package中,然后将你的 exe 文件放到 package中,如果程序中使用了图片资源什么的,也要加进去,这样就完全了。

这是Qt 5的打包,其中只有 platforms 文件夹和 imageformats 文件夹中的 dll 是运行时加载的,其他的依赖dll都可以使用depends工具检查出来,如果还不对,就使用这个工具检查一下吧
------解决思路----------------------
最简单的方式是用
windepolyqt  your_application.exe
------解决思路----------------------
引用:
Quote: 引用:

用depends工具查吧,一个一个的添加。如果是mac就方便很多,有一个deploy工具自动打包生成

使用depends查到很多个dll文件,能批量导出,或者复制吗?
一个一个复制到exe文件所在的文件夹好麻烦啊

depends 只是辅助,对Qt程序来说,depends找到的dll你都复制了还是不够的。你可能需要微软的 procexp.exe 这个东西来查看你的程序运行时到底需要哪些dll了。

如果要省事的话,就用Qt自带的 windepolyqt,它能帮你解决Qt的dll问题。如果你还用了其他的第三方的dll,你仍需要depends和 procexp来找出来(不过这部分一般都很简单了,一般自己程序用的第三方的dll可能不用找都知道)
  相关解决方案