这里是上下文:
现在的状态:
我卡住了,真的有一点帮助。
这是一个依赖问题,你的程序不能加载它的依赖关系,将依赖文件(DLL文件)复制到应用程序目录是一个临时的方式,这是非常危险的方式,你的应用程序可能面临目标机器的问题,如果目标机器不安装有Microsoft Runtime Library的正确版本,您的应用程序无法正常运行,您可以使用Dependency Walker查找应用程序需要的哪些依赖关系(DLL文件)。
有两种方法可以解决这个问题:
首先是在installshield中使用Microsoft Visual C ++ 2010 Runtime组件(或者其他版本取决于您使用的编译的Runtime库的版本),该用户可以静默安装,或者使用其可执行二进制安装而不使用installshield,以后将DLL文件复制到应用程序目录并分发它。
其次是使用静态编译方法来避免这样的问题,但是对于应用程序的静态编译,如果要将其分发到目标机器上,则需要商业许可证。
在目标机器上部署您的应用程序:
1)将Microsoft Visual C ++ 2010 Runtime Library放入您的应用程序文件夹,以便用户将其安装到他们的机器上。
2)从应用程序文件夹( bin
文件夹路径: C:\Qt\Qt5.0.2\5.0.2\msvc2010\bin
)中的Qt's bin
文件夹复制应用程序所需的依赖项( DLL files
)。
3)从您Qt's plugins
应用程序文件夹(如果您在应用程序中使用任何图像资源文件) Qt's plugins
文件夹中复制imageformats
文件夹。
4)从应用程序文件夹中的Qt's plugins
文件夹复制platforms
文件夹。
Qt的插件文件夹路径: C:\Qt\Qt5.0.2\5.0.2\msvc2010\plugins\
Qt项目网站充满了这样的话题。 跟踪依赖关系只会通知编译时依赖关系。 也有动态加载的DLL你不会得到任何错误,警告或任何。 如果您使用库存编译DLL(不包括Qt5 * .dll),您将需要:
加上编译器运行时DLL取决于你使用的是什么版本。
如果使用桌面OpenGL支持而不是ANGLE和Webkit构建,则可以大大减少依赖关系。 那么你只需要平台插件和你正在使用的Qt模块。
只需添加文件qt.conf到您的应用程序目录与以下内容
[路径]
库= /平台
然后复制到相同的应用程序目录,可以找到的子目录“平台”:C:\ Qt \ Qt5.1.1 \ Tools \ QtCreator \ bin
就这样。
这是有效的,因为qtcore.dll编译与您的qt安装的内部路径。 (我不知道为什么!)。 由于t.conf总是在应用程序启动时通过qtcore读取,“平台”中的库将包含在内,并且该应用程序将适用于任何主机。
警告:qtcore和platforms子目录必须来自相同的qt安装。