Which DLL files to need to run exe files in other computer?
-
Hi,
The deployment documentation "plugins chapter":https://qt-project.org/doc/qt-5.0/qtdoc/deployment-windows.html#qt-plugins
explains that.
Basically you need to create the plugins folder and the needed subfolder like imageformats.appfolder
appfolder\plugins
appfolder\plugins\imageformats
etc...I've written a doc note with some examples about it but it has been on moderation for some time now and I can't access it.
-
yes, thanks for your solution . But it didnt' work , Will we NEED reconfigure something at .pro file?
After I add these folder.
*appfolder\plugins*
appfolder\plugins\accessible
appfolder\plugins\imageformats
appfolder\plugins\platforms
appfolder\plugins\sqldriversIt didn't work. So that, I try with :
*appfolder\release\plugins*
appfolder\plugins\plugins\accessible
appfolder\plugins\plugins\mageformats
appfolder\plugins\plugins\platforms
appfolder\plugins\plugins\sqldriversIt didn't work too.
-
remove the plugins from your paths please
[quote author="LeeMinh" date="1374571023"]yes, thanks for your solution . But it didnt' work , Will we NEED reconfigure something at .pro file?
After I add these folder.
*appfolder\plugins*
appfolder\plugins\accessible
appfolder\plugins\imageformats
appfolder\plugins\platforms
appfolder\plugins\sqldriversIt didn't work. So that, I try with :
*appfolder\release\plugins*
appfolder\plugins\plugins\accessible
appfolder\plugins\plugins\mageformats
appfolder\plugins\plugins\platforms
appfolder\plugins\plugins\sqldriversIt didn't work too.[/quote]
-
The only exception is platform, it should be in appfolder directly so:
appfolder\plaftorms
appfolder\plugins\imageformats
etc.. -
[quote author="SGaist" date="1374571281"]The only exception is platform, it should be in appfolder directly so:
appfolder\plaftorms
appfolder\plugins\imageformats
etc..[/quote]Both
@
appfolder\plugins\imageformats
@
and
@
appfolder\imageformats
@can be used.
But if we use the former, a configure file called qt.conf is needed. while the latter doesn't need this file.
-
[quote author="SGaist" date="1374571281"]The only exception is platform, it should be in appfolder directly so:
appfolder\plaftorms
appfolder\plugins\imageformats
etc..[/quote]Both
@
appfolder\plugins\imageformats
@
and
@
appfolder\imageformats
@can be used.
But if we use the former, a configure file called qt.conf is needed, or the plugins path should manually set in the source code. while the latter doesn't need this.
-
It's still didn't work. May you access my machine by teamviewer?.
I replace all of them by :
@appfolder
appfolder\accessible
appfolder\imageformats
appfolder\sqldrivers@@appfolder\release\plugins
appfolder\release\plugins\accessible
appfolder\release\plugins\mageformats
appfolder\release\plugins\platforms
appfolder\release\plugins\sqldrivers@But it didnt' work.
-
I put
@appfolder\plugins
appfolder\plugins\accessible
appfolder\plugins\mageformats
appfolder\plugins\platforms
appfolder\plugins\sqldrivers@And write code:
@int main(int argc, char *argv[])
{
qApp->addLibraryPath("../plugins");
QApplication a(argc, argv);MainWindow w; w.show(); return a.exec();
}@ at main.cpp
But it didnt' work. Just show "Microsoft Visual C++ runtime library".
-
- Where did you put qsqlite.dll?
- What compiler did you use?
- How many copies of Qt do you have on your development PC?
- Which package(s) of Qt did you install?
** Qt 5.1.0 for Windows 32-bit (MinGW 4.8, OpenGL, 666 MB)?
** Qt 5.1.0 for Windows 64-bit (VS 2012, 525 MB)?
** Something else?
-
Hi, I'm trying to solve the same problem. I do believe that the issue I have has something to do with QML. But I'm not sure. I copied all the DLLs the program requested, but if I run it, I only get a blank window.
I even tried to use q .qrc file, to include the .qml files in the .exe file. But with the same result.
What bothers me most is that I don't know how to find out what is wrong. Even if I run the program from console, it doesn't show any message in it.
-
Hi Jech,
Did you deploy the built-in QML-related files? You need the *.qml, qmldir and *.dll files in C:<Qt>\qml.
-
Yes, I did. I even tried to specify the path to these files either as absolute or relative but it didn't help. It used to work without any problems with Qt4, so I'm wondering why it is a problem with Qt5 now.
Is there any possibility to debug the problem to at least find out if the problem is related to QML files or something else?
Thank you!
-
Hi Jech,
I mean _C:\Qt\5.2.0\mingw48_32\qml_ itself.
These are your plugins folders:
- C:\Qt\5.2.0\mingw48_32\plugins\ -- C++ plugins
- C:\Qt\5.2.0\mingw48_32\qml\ -- QML plugins
You need to copy some of the subfolders in these plugin folders. The exact combination that you need depends on the features that you use. Example:
- <MyApp>\app.exe
- <MyApp>\ qml\MyApp\main.qml ^
- <MyApp>\ qml\MyApp\MyCustomQmlFile.qml ^
- <MyApp>\Qt5Core.dll
- ...
- <MyApp>\QtQuick.2\qmldir
- <MyApp>\QtQuick.2\qtquick2plugin.dll
- <MyApp>\platforms\qwindows.dll
The first 3 (italicized) lines are your project-specific files, which you should copy from your build directory. The rest should be copied from _C:\Qt\5.2.0\mingw48_32_ somewhere.
The 2nd and 3rd (^) lines depend on your code. My example above assumes that you used Qt Creator's defaults for a new Qt Quick 2 project, so your main.cpp should have this line:
@
// Your deployment folder structure is shown below:
viewer.setMainQmlFile(QStringLiteral("qml/MyApp/main.qml"));
@An easy way is to copy all the subfolders of _c:\Qt\5.2.0\mingw48_32\qml_ into your .exe directory, and then launch your program. If it works, delete things one by one and try launching again, to see what you need and what you don't.
-
This is really strange. I copied everything from *C:\Qt\5.2.0\mingw48_32\plugins* and *C:\Qt\5.2.0\mingw48_32\qml* to the directory with my .exe file. The other .dll and .qml files are in their place too. But the result is still the same, I only get a blank window without any content and no error message is displayed.
If I compile my program using Qt4, it is very easy to deploy it and I don't have any problems with it.
Do you have any idea what I could try? For example is there a way I could get any debug information from the application. I have no idea what could be wrong. :-(
-
Maybe try deploying a Hello World QML app first, to figure out what you need. Once you succeed, then try deploying your complex app.
[quote author="jech" date="1389000430"]I copied all the DLLs the program requested, but if I run it, I only get a blank window.[/quote]I just noticed this part. You'll need some DLLs that the program DOESN'T ask for too; you won't get popup messages for DLLs that are loaded dynamically AFTER the program starts running.
See http://qt-project.org/doc/qt-5/windows-deployment.html -- use Dependency Walker to open your application.
Note: You will get some false positives. Ignore the warnings about API-MS-WIN*.DLL, DCOMP.DLL and IESHIMS.DLL.
Then, click "Profile" -> "Start Profiling...". This will reveal the dynamically-loaded DLLs.