tags:

views:

2744

answers:

3

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?

A: 

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

Will
+7  A: 

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.

Gregory Pakosz
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
@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?
Gregory Pakosz
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.
Brian
Cool! I'm glad you sorted this out. Qt is a nifty toolkit
Gregory Pakosz
+2  A: 

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.

Patrice Bernassola
This assumes you have the license to do so. Static linking requires the commercial license.
drowe