Run Qt application on other computers
-
Hi,
I am developing some app in Qt SDK and I use mingw compiler (Qt 4.8.1). I want use my app on other computers.
But already on my computer is first problem, when starting my app without Qt Creator.
My application runs OK from Qt Creator, but when I try launch .exe file from release folder (I use release folder for build my application) shows error like "Entry point procedure XXX not found in QtCore4.dll". So I found many solutions on the web, and I put several dlls to folder ("release") where is .exe file:QtCore4.dll
QtGui4.dll
QtXml4.dll
QtSql4.dll
mingwm10.dll
libgcc_s_dw2-1.dllI try put these dlls: QtCore4.dll, QtGui4.dll, QtXml4.dll,QtSql4.dll to my release folder where is .exe file from
my C:\QtSDK\Desktop\Qt\4.8.1\mingw\bin and then also from C:\QtSDK\Desktop\Qt\4.8.1\mingw\lib . But there
is no difference and I get always same error. Have I use dlls from \bin or \lib ?I try use Dependency Walker and it shows that my .exe require Qt*.dll files from my C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\bin folder.
I am really confused but I build my app with mingw (I set it in Qt Creator) not with msvc2010 compiler, can me help anyone? I think that I use all needed dlls. Thanks
-
[quote author="romeo.rbw" date="1367632528"]Try to put .dll on the windows/system32, ...but I think that is not the best solution but it will help. May be other solution or suggestion from other will help too.[/quote]
This may help for some setups, but you may create confusion. Therefore, it is better to refrain from this idea. IMO it is better to leave the dlls where they are. Because this way you have version information which is otherwise lost.When loading the exe into dependency walker it will load the also the dlls which are in the same location as the exe. Afterwards it will use your environment path settings to locate other dlls.
When copying dlls you need to make sure that you are not confusing the Qt lib version dlls with those accompanying Qt creator. Qt creator is a Qt application compiled with a certain version of Qt libs. However, this version may NOT be identical to the version of Qt libs you are using for your application. AFAIK Qt creator is compiled with msvc. Therefore, the Qt dlls for creator should be for msvc.
The Qt dlls you are requiring are those for MinGW. I guess you have mixed up your Qt dlls while copying. -
Hi woofit
From your post, I see that you're including QtSql4.dll which made me wonder if you're deploying your SQL drivers correctly? The SQL drivers should go in a folder called (not surprisingly) "sqldrivers". In other words, your directory structure should be:
Your App
Qt DLL's
sqldrivers/sqlite4.dll (or whatever you're using)Hope that helps.
-
Hi,
In addition to what the others told you, there is the"installation documentation":http://qt-project.org/doc/qt-4.8/deployment-windows.html which explains what you need