Qt 5.0程序在QtCreator中运行但不在外部运行

Dar*_*iwi 3 windows qt qt-creator

以下是上下文:

  • 我在Windows 7 x64下用Qt开发了一个程序.
  • 我已升级到Qt 5.0.1,QtCreator 2.6.1,编译器VS2010.

现在的状态:

  • 我的程序在QtCreator中运行良好但是,当我在外面尝试时,我收到了几个错误.
  • 我检查了这个主题给了我一些答案: qtcreator - exe在qtcreator中运行良好,但不在外面
  • 因此我添加了Qt dll并且它有所帮助,不再有Missing Libraries消息.
  • 不过,它不会在QtCreator之外运行(没有更多错误消息,我只是不运行)所以我添加了qminimalqwindows dll 的平台目录,它没有帮助.
  • 我还下载并添加了libEGL.dll作为sugested,没有结果.

我被困住了,真的有点帮助.

Rez*_*imi 5

这是一个依赖性问题,您的程序无法加载其依赖项,将依赖项文件(DLL文件)复制到应用程序目录是一种临时方式,这是一种非常冒险的方式,您的应用程序可能会遇到目标计算机中的问题,如果目标计算机没有安装了正确版本的Microsoft运行时库,您的应用程序无法正常运行,您可以使用Dependency Walker找到应用程序需要哪些依赖项(DLL文件).

有两种方法可以解决这个问题:

第一个是在installshield中使用Microsoft Visual C++ 2010 Runtime组件(或者其他版本取决于您使用它编译的Runtime库的版本),该用户可以静默安装它,或者使用其可执行二进制文件安装而不使用installshield,以及稍后将DLL文件复制到应用程序目录并分发它.

其次是使用静态编译方法来避免这样的问题,但是对于应用程序的静态编译,如果要将其分发到目标计算机上,则需要商业许可证.

在目标计算机上部署应用程序:

1)将Microsoft Visual C++ 2010运行时库放在应用程序文件夹中,以便用户将其安装在自己的计算机上.

2)DLL filesQt's bin应用程序文件夹(bin文件夹路径:)中的文件夹复制应用程序所需的依赖项(C:\Qt\Qt5.0.2\5.0.2\msvc2010\bin).

3)imageformatsQt's plugins应用程序文件夹中的文件夹中复制文件夹(如果在应用程序中使用任何图像资源文件).

4)platformsQt's plugins应用程序文件夹中的文件夹中复制文件夹.

Qt的插件文件夹路径: C:\Qt\Qt5.0.2\5.0.2\msvc2010\plugins\