没有QtCreator,exe文件不会运行

Har*_*rix 12 qt qml qt-quick qt5 qtquick2

为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ненайденавбиблиотекеDLIicuuc49.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文件的文件夹.

UmN*_*obe 16

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

注意:

常规案例中缺少文件的类型:

  • Qt库.如果Qt编译为静态,则不应出现
  • 其他库Qt取决于:例如OpenSSL.如果Qt和此lib都是静态的,则不会出现
  • 编译器库:ex,libgcc_s_sjlj用于OP的gcc .它们通常是动态的,如果它们不在库搜索路径中,则需要复制它们.

  • 对于Qt-Libraries,还有一个依赖walker的替代方案.它叫做windeployqt你可以在QTDIR/bin/windeployqt找到它.本页底部对此进行了解释:[http://doc.qt.io/qt-5/windows-deployment.html ](http://doc.qt.io/qt-5/windows-deployment. HTML) (2认同)