我用Qt(mingw)的独立版本构建了我的第一个c ++ GUI应用程序,并且运行正常。我在另一台计算机上尝试过它,它立即崩溃了Visual c ++运行时库错误。
我实际上测试过将整个bin文件夹复制到另一台PC并从那里运行应用程序,仍然是相同的。 什么可能导致问题?
其他详情:
我安装了Visual C ++ 2010 Redistributable,我也复制了d3dcompiler_XX.dll。 我从Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ bin获得了所有的dll。
我没有链接任何内容,而且我对链接一般没有任何经验。 我读了几篇关于这个的帖子,他们没有提供解决方案,或者我不理解的解决方案。调试模式也是这样做的。在我的电脑上它也在Qt Creator之外运行。
答案 0 :(得分:1)
如果你的Qt-App是用MinGW动态构建的(即使用动态库),你需要MinGW的dll(比如libgcc_s_sjlj-1.dll,libstdc ++ - 6.dll等)。在MinGW安装目录中找到这些文件。 (可能是你的Qt安装)
检查“应用程序依赖关系”答案 1 :(得分:1)
毕竟我无法让MinGW版本工作,甚至很难我按照一步一步的部署文档,但我现在有一个有用的应用程序。
问题的根源是来自Qt文件夹的一些dll注册和程序到达它们甚至很难,它不在同一个文件夹中。我认为与文档中提到的相比,MinGW版本需要更多的dll,或者它可能只是我的PC。
这是我做的:
1,使用Visual Studio编译器下载Qt创建者,删除除源之外的所有内容并重建项目。
2,将此添加到项目文件的开头:
QMAKE_LFAGS += -Wl,--repath=\\\$\$ORIGIN
QMAKE_LFAGS += -Wl,--repath=\\\$\$ORIGIN/lib
QMAKE_LFAGS += -Wl,--repath=\\\$\$ORIGIN/libs
QMAKE_RPATH=
这应该让应用程序查找dll。 ,./ lib,./ libs,但我认为它什么都不做,因为应用程序不会在lib文件夹中找到它们。
3,将这些dll复制到同一个文件夹中:(与文档相同)
D3DCompiler_43
icudt49
icuin49
icuuc49
libEGL
libGLESv2
Qt5Core
Qt5Gui
Qt5Widgets
Platforms (folder) containing qminimal and qwindows
msvcr100 and msvcp100
minGW版本需要LIBSTDC ++ - 6,LIBGCC_S_DW2-1和MINGWM10,但即便如此,它也不适用于我。
一般提示:
祝大家编程愉快,并希望通过这篇文章更成功地进行故障排除。