Error: "The program can't start because QtGuid4.dll is missing from your computer..."



  • Hi all!

    I'm newbie in forum. I try to develop apps (console or GUI) run in windows by use Qt Creator 2.4.1. When I run project (Ctrl+R) it work, but when I run executable file in debug folder it does not work. Error occurs: "The program can't start because QtGuid4.dll is missing from your computer. Try reinstalling the program to fix this problem."

    I found "topic":http://developer.qt.nokia.com/forums/viewthread/12525 and try do follow it.
    First: copy "QtGui4.dll" into debug folder and rename it to "QtGuid4.dll" then run exe file again. The error occurs same except dll missing is "QtCored4.dll".
    Second: same the first, copy "QtCore4.dll" and rename it to "QtCored4.dll" then run exe file again. The error occurs same, in this case dll missing is "QtCore4.dll".
    Third: copy "QtCore4.dll" to debug folder and run exe file again. It work.

    Conclusion: copy 3 dll files "QtCore4.dll", "QtCored4.dll" (rename from "QtCore4.dll") and "QtGuid4.dll" (rename form "QtGui4.dll") to debug folder. It work.

    So, how to built my app can run in windows without copy 3 dll files to same directory? I don't want that because size of dll files fairly large ("QtGui4.dll" ~ 7.84Mb and "QtCore4.dll" ~ 2.18Mb (x2)).

    Thanks for advance!

    Best regards!

    ps: I downloaded the QtSDK (Qt4) for install offline (1.3Gb). OS: Windows 7 Ultimate.



  • If you run the executable from the folder, you have to have the dll's in that folder. When you run it from the IDE, the IDE knows where to look for those dll's through the project settings.



  • 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!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.