这是一个依赖问题,您的程序无法加载其依赖关系,将依赖文件(DLL文件)复制到应用程序目录是一种临时方式,这是一种非常危险的方式,您的应用程序可能会在目标机器上遇到问题,如果目标机器没有安装了正确版本的 Microsoft 运行时库,您的应用程序无法正常运行,您可以使用Dependency Walker找到您的应用程序需要哪些依赖项(DLL 文件)。
有两种方法可以解决这个问题:
第一个是在您的 installshield 中使用Microsoft Visual C++ 2010 运行时组件(或其他版本取决于您使用它编译的运行时库的版本),该用户可以静默安装它,或者在不使用 installshield 的情况下使用其可执行二进制文件安装,然后将 DLL 文件复制到应用程序目录并分发它。
其次是使用静态编译方法来避免此类问题,但是对于应用程序的静态编译,如果您想在目标机器上分发它,则需要商业许可证。
对于在目标机器上部署您的应用程序:
1) 将Microsoft Visual C++ 2010 Runtime Library 放入您的应用程序文件夹中,以便用户将其安装在他们的机器上。
DLL files
2)从Qt's bin
应用程序文件夹(bin
文件夹路径:)中的文件夹复制应用程序所需的依赖项(C:\Qt\Qt5.0.2\5.0.2\msvc2010\bin
)。
3)imageformats
从Qt's plugins
应用程序文件夹中的文件夹复制文件夹(如果您在应用程序中使用任何图像资源文件)。
4)platforms
从Qt's plugins
应用程序文件夹中的文件夹复制文件夹。
Qt的插件文件夹路径:C:\Qt\Qt5.0.2\5.0.2\msvc2010\plugins\