Exe file does not run without QtCreator

£可爱£侵袭症+ 提交于 2019-12-17 10:49:37

问题


I installed Qt 5.0.1 for Windows 32-bit (MinGW 4.7, 823 MB)

Then I created simple Quick 2 application and compiled it. Application is located in the its folder, and apllication run from QtCreator. And I want to run this exe file without QtCreator. To do this, I copy the files from the 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

And then I get error:

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

Translate:

The procedure entry point _ZN6icu_4910CharString15getAppendBufferEiiRiR10UErrorCode not found in library DLL icuuc49.dll

If I copy the exe file to a folder C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin (where are all the dll), the program runs, but nothing shows.

If I copy the exe file to a folder C:\Qt\Qt5.0.1\Tools\QtCreator\bin (where are all the dll), the program does not run.

What to do? Where and what libraries to take the program to run?

Solved. The final list of libraries from 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

And I forgot to add the folder with qml files.


回答1:


Put your executable in a neutral directory, like a freshly created one your desktop. Then run dependency walker. It will show you the list of missing libraries. For a start Qt5Core.dll, libgcc_s_sjlj-1.dll and the one you specified will be one of the missing. You have to find them on your system, and copy one by one to this directory. Most of the missing will be in the directory you specified (C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin). If you cannot find the other ones edit the question with a list.

Note:

Types of missing files in the General case :

  • Qt libraries. If Qt was compiled as static, they should not appear
  • Misc libraries Qt depends on : OpenSSL for example. Not appearing if both Qt and this lib is static
  • Compiler libraries : ex, gcc libgcc_s_sjlj for the OP. They are usually dynamic and need to be copied if they are not already in the library search path.



回答2:


Add "C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin" to your path. Then the application should work.




回答3:


Dont worry about the missing dll files. put your .exe file into the folder of this path : "C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin"

you can run the .exe file now . it works fine.



来源:https://stackoverflow.com/questions/14702879/exe-file-does-not-run-without-qtcreator

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!