Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

QT example executables won't run, missing QT5Cored.dll

Tags:

c++

qt

QT5Cored.dll is on my system @: C:\Qt\5.4\mingw491_32\bin folder

The Analogclock example and other projects will run in the IDE, but can Not be run from the created .exe files. When the EXE is launched the QT5Cored.dll missing error occurs. QT installed it & doesn’t know where it is? Removed & reinstalled QT with same results. enter image description here

Downloaded earler today. Version: 3.3.1, QT 5.4.1(MSCV 2010, 32 Bit), Built on Feb 20, 2015.

Any suggestions appreciated.

New error after DLL filles added to exe directory. enter image description here

like image 454
Ashton Avatar asked Feb 26 '15 00:02

Ashton


People also ask

How do I create a DLL in Qt?

Creating dll seems an easy task in Qt. In Qt creator, click File/New File or Project/Projects/Library/C++ Library, then simply choose a name, you will create a dll project. Click “build”, you will see the . dll generated in the debug or release directory.

How do I fix Qt5Core DLL error?

Reinstalling the program may fix this problem. qt5core. dll is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vender for support.

What is Qt5Core DLL?

Qt5Core. dll is included in the C++ application development framework. This dll file is one of the many necessary dll files to run any application or game coded in C++ language or uses a framework that is based on C++.


1 Answers

To run it outside of Qt Creator, you have two choices:

  1. Copy the missing DLLs to the directory where the executable resides. For example if analogclock.exe is in c:\examples, then copy C:\Qt\5.4\mingw491_32\bin\Qt5Cored.dll and other required DLLs to c:\examples. You may need to copy plugins files too.
  2. Add C:\Qt\5.4\mingw491_32\bin to the PATH environment variable.

There are some ways to copy the missing DLLs:

1. Use Windows Deployment Tool (windeployqt.exe) to copy required files

  1. Open Command Prompt in one of the following way:
    1. If you use MSVC as compiler, open the correct Visual Studio Command Prompt. For example for VS2013 32-bit, click Start -> Microsoft Visual Studio 2013 -> Visual Studio Tools -> VS2013 x86 Native Tools Command Prompt. This will open a Command Prompt with the VCINSTALLDIR environment variable correctly set. windeployqt.exe requires this environment variable to copy the correct Visual C++ redistributable executable.
    2. If you use MinGW, just open a Command Prompt.
  2. Add Qt binary path and optionally g++.exe path to PATH environment variable. If your executable is 32-bit, add the 32-bit Qt binary path, eg: c:\Qt\5.4\msvc2013\bin. If your executable is 64-bit, add the 64-bit Qt binary path, eg: c:\Qt\5.4\msvc2013_64\bin. windeployqt.exe will copy DLLs from this directory, so it is important that you don't set 32-bit Qt binary path for a 64-bit executable, vice versa. You need to add g++.exe path too if you use MinGW, windeployqt will copy lib*.dll from there.

    ; Example path for MSVC 32-bit
    PATH=c:\Qt\5.4\msvc2013\bin;%PATH%
    
    ; Example path for MinGW 32-bit, g++.exe is in C:\Qt\Tools\mingw491_32\bin
    PATH=C:\Qt\5.4\mingw491_32\bin;C:\Qt\Tools\mingw491_32\bin;%PATH%  
    
  3. Run windeployqt.exe with your executable file as argument. Eg:

    windeployqt.exe C:\Qt\Examples\Qt-5.4\widgets\richtext\build-calendar-Desktop_Qt_5_4_0_MSVC2013_32bit-Debug\debug\calendar.exe
    
  4. Check the output for error or warning. The following is an output without error and warning:

enter image description here

2. Manually copy the DLLs

You must copy the correct DLLs (32-bit or 64-bit). Use a tool like Process Explorer to find the correct DLL paths:

  1. Run the application from Qt Creator / Visual Studio.
  2. Open Process Explorer.
  3. In Process Explorer
    1. Click the executable, for example calendar.exe
    2. Press Ctrl+D to show loaded DLLs in the lower panel. The equivalent menu is View -> Lower Panel View -> DLLs
    3. In the lower panel, click the Path column to sort by path.
  4. Copy the DLLs to the directory where the executable resides. For example in the following picture. The DLLs are from C:\Qt\5.4\msvc2013\bin.

Process Explorer

  1. If your executable uses something like c:\Qt\5.4\msvc2013\plugins\platforms\qwindowsd.dll. It should be copied too. But copy from the platforms directory, not plugins. Let's say calendar.exe's full path is c:\examples\calendar.exe, then qwindowsd.dll should be copied to c:\examples\platforms\qwindows.dll, not c:\examples\plugins\platforms\qwindows.dll.
  2. You need to copy C++ runtime library too. If you are using mingw, you may need to copy libgcc_s_dw2-1.dll, libstdc++-6.dll. libwinpthread-1.dll etc too. Check in Process Explorer to be sure. If you are using MSVC, you need to deploy the runtime (Eg: msvcp120.dll, msvcr120.dll). At the end, your directory structure is something like this:

    c:\examples\calendar.exe
    c:\examples\Qt5Cored.dll
    c:\examples\Qt5Widgetsd.dll
    c:\examples\Qt5Guid.dll
    c:\examples\icudt53.dll
    c:\examples\icuin53.dll
    c:\examples\icuuc53.dll
    c:\examples\libgcc_s_dw2-1.dll   (if using mingw)
    c:\examples\libstdc++-6.dll      (if using mingw)
    c:\examples\libwinpthread-1.dll  (if using mingw)
    c:\examples\platforms\qwindowsd.dll
    
like image 57
fxam Avatar answered Nov 03 '22 18:11

fxam