[ Solution ]
I want to run my app created with QtSDK
on a machine that does not have Qt
installed.
I tried to copy the DLL's
from the BIN
folder to the release of my project, but it did not work.
I tried the following:
- I copy all
dll's
folderd:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin
- And pasted it in the folder of my project:
d:\projects\mybrowser\mybrowser-build-Desktop_Qt_5_0_1_MinGW_32bit-Release\release
- and send it to another computer
without Qt
- In computer
without Qt
, I installedvcredist_sp1_x86.exe
and tried to run my applicationbrowsertest.exe
The following error occurred:
microsoft visual c++ runtime library: this application has requested the runtime to terminate it in an unusual way
Q: What I really want to know:
How do I run an application built in Qt on other computers (Windows) without Qt installed?
Details:
- Qt5.0.1 32bit
- mingw 4.7 32bit
- QtCreator 2.6.2
- Windows 7 64bit.
- Intel i5
Folders:
- D:\Qt\Qt5.0.1\5.0.1\mingw47_32
- D:\Qt\Qt5.0.1\Tools\MinGW
Qt/Mingw:
- D:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin\qmake.exe
- d:\Qt\Qt5.0.1\Tools\MinGW\bin\gcc.exe
File .pro:
QT += webkitwidgets network core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = browsertest
TEMPLATE = app
RC_FILE = browser.rc
SOURCES += main.cpp\
mybrowser.cpp
HEADERS += mybrowser.h
FORMS += mybrowser.ui
If any information you missed, please let me know. grateful
To distribute your application you need to copy the DLLs (only the DLLs necessary).
Copy the DLLs necessary from
<DRIVE>:\Qt\Qt<Version_qt>\<Version_qt>\mingw<Version_mingw>\
or<DRIVE>:\Qt\Qt<Version_qt>\<Version_qt>\mingw<Version_mingw>\bin\
eg.:
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\
orC:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin
Paste the folder of your application.
Then copy the folders inside of
<DRIVE>:\Qt\Qt<Version_qt>\<Version_qt>\mingw<Version_mingw>\plugins
eg.:
C:\Qt\Qt5.2.0\5.2.0\mingw48_32\plugins
Paste the folders of your application.
The structure should look something like this (example):
Only some DLLs the mingw will be needed, so I recommend using the Dependency Walker 2.2
The result should look like this (not all dlls are needed, this can vary by project type):
Thanks to:
+1 for @MartinBeckett, showed me the program to find the DLLs required.
+1 for @WouterHuysentruit, thanks to the application I indicated, I discovered that the contents of the mingw\plugins folder should go straight into the application folder.
@WouterHuysentruit I would consider your answer as correct, but you just said, so I put a simpler explanation. Thanks anyway.
"microsoft visual c++ runtime library: this application has requested the runtime to terminate it in an unusual way"
That's either an ordinary bug, or sometimes a mix of incompatible dlls
Use the (free) depends program on your exe to check which dlls it actually uses - it probably isn't linking all of Qt
Some Qt libs are loaded at runtime from a plugins folder, mostly image formats and database connections - but they woudln't give this error
windeployqt (delivered with QT 5.2+) should do (most?) of the work