Error: "The program can't start because QtGuid4.dll is missing from your computer..."
-
All dll files are located in [your_QtSDK_install_dir]\Desktop\Qt[your_Qt_version]\mingw\bin
Just search for dlls that error reports and copy it to your application directory.
Note:
If your change the build to release, you won't need debug libraries, which are quite larger. -
Thanks for reply!
[quote author="Jake007" date="1329242911"]All dll files are located in [your_QtSDK_install_dir]\Desktop\Qt[your_Qt_version]\mingw\bin
Just search for dlls that error reports and copy it to your application directory.
Note:
If your change the build to release, you won't need debug libraries, which are quite larger.[/quote]How to build to release? I try to run, build or qmake but nothing change.
-
You need to choose release in your IDE and than make build. In Visual Studio it's a list box when you can choose release or debug and than press F7 to build your application.
-
Thank for reply!
[quote author="Anticross" date="1329285931"]You need to choose release in your IDE and than make build. In Visual Studio it's a list box when you can choose release or debug and than press F7 to build your application.[/quote]
I try choosee release in Qt Creator: Projects -> Targets -> Build -> Build Settings and choosee Edit build configuration to "Qt 4.8.0 for Desktop - MSVC2008 (Qt SDK) Release" and rebuild then goto release folder to run exe file. But error occurs same, require "QtGui4.dll" and "QtCore4.dll" to run exe. How to attack just lib, what my app need (for example: import QLabel without import all elements of QtGui4.dll lib) in itself (executable file). Then my app can run in some pc without "move" dll files (eg: QtGui4.dll, QtCore4.dll) follow it.
Thanks for advance!
-
QLabel is inside QtGui. So you can not have them separately.
[quote author="Jake007" date="1329242911"]All dll files are located in [your_QtSDK_install_dir]\Desktop\Qt[your_Qt_version]\mingw\bin
Just search for dlls that error reports and copy it to your application directory.
[/quote]Then you only repeat this step.
There is a way to bypass dlls, but you would need to buy Qt license for this.
Also, if you copy your dll files in C:\Windows\system32, you won't need to copy dlls any more.
But if you'll distribute you app, don't forget to add dlls. But there might come a problem with different Qt versions in time. -
The other option is to add the bin directory with the dls etc. to your PATH environment variable. start->right-click on computer->properties->advanced system settings->environment variables. Then modify the PATH to include the directory with your qt dl's (something like [QtSDK_install_dir]\qt\bin).
However, for deployment to another computer, you will still need to copy all of the dll's
-
Thanks!
[quote author="waterstw" date="1329320356"]The other option is to add the bin directory with the dls etc. to your PATH environment variable. start->right-click on computer->properties->advanced system settings->environment variables. Then modify the PATH to include the directory with your qt dl's (something like [QtSDK_install_dir]\qt\bin).
However, for deployment to another computer, you will still need to copy all of the dll's[/quote]
Don't have any way? If copy all of the dll into same directory of executable then my app so larger and every one can know my app written by Qt. I don't want that.
-
If you were to ship your product with Qt to a customer, you would have to put the dll's in the folder where the app is installed. There is no way around that. You don't want the responsibility to be placed on the user to make sure they install the Qt library in the proper location. Also, the release libraries are small. For example, QtGui4.dll is roughly 8.16MB, which is nothing in terms of size. Only copy the dll's that you use, I'm guessing you only use QtGui4.dll and QtCore4.dll.
-
[quote author="steno" date="1329348144"]If you were to ship your product with Qt to a customer, you would have to put the dll's in the folder where the app is installed. There is no way around that. You don't want the responsibility to be placed on the user to make sure they install the Qt library in the proper location. Also, the release libraries are small. For example, QtGui4.dll is roughly 8.16MB, which is nothing in terms of size. Only copy the dll's that you use, I'm guessing you only use QtGui4.dll and QtCore4.dll. [/quote]
Thanks!
-
HI chocolate1146, When I copy QtCore4.dll and QtGui4dll to excute folder . It has still show QtCore4.dll is missing. I make another solution by copy it to debug folder - it contain .exe file. It don't show QtCore4.dll is missing. It show icuin51.dll IS MISSING.
-
I am facing exactly the same problem.. i tried to run the calculator example exe from Qt Creater ,it works and when i try to run from the folder it asks for the dll files...
The dll file are really very heavy if i want to run this calculator in another computer just as an example...
And if theres not any work around....a calculator of 100 Mb.....what the heck is that ... who will want to use any of my app...if i build on qt..Pls help
-
for this the dll files for calculator exe is exactly 70,2 mb..are you sure it needs to be so big to run a calculator in another computer???
[quote author="steno" date="1329348144"]If you were to ship your product with Qt to a customer, you would have to put the dll's in the folder where the app is installed. There is no way around that. You don't want the responsibility to be placed on the user to make sure they install the Qt library in the proper location. Also, the release libraries are small. For example, QtGui4.dll is roughly 8.16MB, which is nothing in terms of size. Only copy the dll's that you use, I'm guessing you only use QtGui4.dll and QtCore4.dll. [/quote] -
Dear LeeMinh,
"It show icuin51.dll IS MISSING."
I think you are using QT5 and not Qt4. To resolve this issue just copy the same icuin51.dll from QT installation folder to the folder where your exe is present.
Let me know in case you feel any problem.
Cheers!