17

I'm trying to deploy my simple Qt project like a hello world.

I build it successfully and can also execute it on Qt-Creator. However, I can't execute the binary directly in the release folder due to some shared library errors.

So I just copy some essential librarys to the release folder such as qtcore.dll and qtgui.dll, but I can't still execute it.

How can I deploy my simple Qt project? Is there an another step to deploy it?

1
  • The error message is that the start point of the procedude is not found in the QtCore4.dll. This error message may be not exactly because it's translated into English by me. Commented Dec 22, 2009 at 23:41

5 Answers 5

19

You also need to deploy the MINGW runtime dll (mingwm10.dll). This file is located in your Qt\2009.5\mingw\bin directory.

Also pay attention to whether your application is compiled in debug mode or release mode. I just made the test with an hello world type application and Qt Creator. In the debug folders, I copied libgcc_s_dw2-1.dll, mingwm10.dll, QtCored4.dll and QtGuid4.dll and it works.

Pay attention to the d in dll names, which stands for debug: QtCore d 4.dll.

See Qt 4.6: Deploying an Application in Windows. For Qt 5, check this page.

Sign up to request clarification or add additional context in comments.

6 Comments

I copied that file and libgcc_s_dw2-1.dll, but the following error message is occurred. The start point of the procedude is not found in the QtCore4.dll. This error message may be not exactly because it's translated into English by me
@brian > which version Qt are you using, is this the LGPL version? did you pay attention to the debug and release versions of the Qt libraries?
Thanks. I resolved this problem. It failed because I used qtcore.dll and qtgui.dll located in Qt\2009.5\bin directory. When I used those files located in Qt\2009.5\qt\bin directory, it works well.
Cool! I'm glad you sorted this out. Qt is a nifty toolkit
@GregoryPakosz The link no longer works, it just redirects to qt.digia.com now. Was not sure what it was supposed to point to or I would have edited it.
|
11

If you don't want to have dependencies with qt/mingw dlls you should compile qt statically as explain here: http://qt.nokia.com/doc/4.6/deployment-windows.html#static-linking.

4 Comments

This assumes you have the license to do so. Static linking requires the commercial license.
@Drowe: You don't have to buy comercial license, You just have to release source code under LGPL/GPL licence.
@Seba - correct, good point. A (possibly) incorrect assumption on my part.
@Seba: Also wrong. You do not have to release your code under LGPL/GPL. If you choose Qt as LGPL, you will have to release your code as in LGPL mentioned, as object files to enable users to link your application against a different Qt version. You do not have to release any source code.
2

You may also use static linking, just add this line into the .pro file:

QMAKE_LFLAGS += -static-libgcc

I found the solution here and successfully tested on WinXP with QT creator 2.2.0

Comments

1

Try running dependency walker on it (http://dependencywalker.com/) to see which dlls are missing?

Generally, you won't need to move those Qt libraries into your local folder since the Qt installation should've added those libraries into your path.

One possibility is that you built debug, and the Qt debug dlls are named differently

Comments

-6

copy all the qt dlls to your windows directory directly "C:\Windows\" and there will be no qt dll error 100% working and simple nb: do not create a qt dll folder in your windows directory post them as they are

2 Comments

This is a bad idea... Never junk up windows and never use this method when deploying an application.. Take the time to see what required files are needed and deploy them with your application. While old question/answer.. Best to advise people this is NOT a good idea
This is a bad practice. As mentioned, look for the required dlls and add them accordingly during deployment.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.