13

为 Windows 32 位安装了 Qt 5.0.1 (MinGW 4.7, 823 MB)

然后我创建了简单的 Quick 2 应用程序并编译了它。应用程序位于其文件夹中,应用程序从 QtCreator 运行。我想在没有 QtCreator 的情况下运行这个 exe 文件。为此,我从C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin复制文件:

  1. Qt5Core.dll
  2. icuin49.dll
  3. libgcc_s_sjlj-1.dll
  4. libwinpthread-1.dll
  5. libGLESv2.dll
  6. libstdc++-6.dll
  7. qminimal.dll
  8. Qt5Gui.dll
  9. Qt5Network.dll
  10. Qt5Qml.dll
  11. Qt5Quick.dll
  12. Qt5V8.dll
  13. qwindows.dll

然后我得到错误:

Точка входа в процедуру _ZN6icu_4910CharString15getAppendBufferEiiRiR10UErrorCode не найдена в библиотеке DLL icuuc49.dll

翻译:

在库 DLL icuuc49.dll 中找不到程序入口点 _ZN6icu_4910CharString15getAppendBufferEiiRiR10UErrorCode

如果我将 exe 文件复制到文件夹C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin(所有 dll 都在哪里),程序运行,但没有显示。

如果我将 exe 文件复制到文件夹C:\Qt\Qt5.0.1\Tools\QtCreator\bin(所有 dll 都在哪里),则程序无法运行。

该怎么办?程序运行在哪里和哪些库?

解决了。来自C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin的库的最终列表:

  1. icuin49.dll
  2. icuuc49.dll
  3. libEGL.dll
  4. libgcc_s_sjlj-1.dll
  5. libGLESv2.dll
  6. libstdc++-6.dll
  7. libwinpthread-1.dll
  8. Qt5Core.dll
  9. Qt5Gui.dll
  10. Qt5Network.dll
  11. Qt5Qml.dll
  12. Qt5Quick.dll
  13. Qt5V8.dll

我忘了添加带有 qml 文件的文件夹。

4

3 回答 3

17

将您的可执行文件放在一个中性目录中,就像您的桌面上新创建的一样。然后运行依赖walker。它将向您显示缺少的库列表。首先Qt5Core.dlllibgcc_s_sjlj-1.dll您指定的将是缺失的之一。你必须在你的系统上找到它们,并一一复制到这个目录。大部分缺失将在您指定的目录中 ( C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin)。如果您找不到其他人,请使用列表编辑问题。

注意:

一般情况下丢失文件的类型:

  • Qt 库。如果 Qt 被编译为静态,它们不应该出现
  • 杂项库 Qt 依赖于:例如 OpenSSL。如果 Qt 和这个库都是静态的,则不会出现
  • 编译器库:例如,libgcc_s_sjlj用于 OP 的 gcc。它们通常是动态的,如果它们不在库搜索路径中,则需要复制它们。
于 2013-02-05T09:18:55.777 回答
-3

将“C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin”添加到您的路径中。然后应用程序应该工作。

于 2013-06-19T07:13:57.030 回答
-4

不要担心丢失的 dll 文件。将您的 .exe 文件放入此路径的文件夹中:“C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin”

您现在可以运行 .exe 文件了。它工作正常。

于 2013-03-25T17:07:57.383 回答