The procedure entry point renderSynchronous@QRenderAspectPrivate@Qt3DRender could not be located in the dynamic link library
m3g1dd last edited by
I'm using Qt 5.11.2 and I'm using
windeployqt.exeto deploy my application. The log of
windeployqt.exeis shown below:
Adding Qt5Svg for qsvgicon.dll Adding Qt53DAnimation for assimpsceneimport.dll Direct dependencies: Qt5Core Qt5Gui Qt5Qml Qt5Quick Qt5Widgets Qt53DCore Qt53DRender Qt53DInput Qt53DExtras All dependencies : Qt5Concurrent Qt5Core Qt5Gamepad Qt5Gui Qt5Network Qt5Qml Qt5Quick Qt5Widgets Qt53DCore Qt53DRender Qt53DInput Qt53DExtras To be deployed : Qt5Concurrent Qt5Core Qt5Gamepad Qt5Gui Qt5Network Qt5Qml Qt5Quick Qt5Svg Qt5Widgets Qt53DCore Qt53DRender Qt53DInput Qt53DAnimation Qt53DExtras Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set. Updating Qt53DLogic.dll. Updating Qt5Concurrent.dll. Updating Qt5Core.dll. Updating Qt5Gamepad.dll. Updating Qt5Gui.dll. Updating Qt5Network.dll. Updating Qt5Qml.dll. Updating Qt5Quick.dll. Updating Qt5Svg.dll. Updating Qt5Widgets.dll. Updating Qt53DCore.dll. Updating Qt53DRender.dll. Updating Qt53DInput.dll. Updating Qt53DAnimation.dll. Updating Qt53DExtras.dll. Updating libGLESV2.dll. Updating libEGL.dll. Updating D3Dcompiler_47.dll. Updating opengl32sw.dll. Patching Qt5Core.dll... Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/bearer. Updating qgenericbearer.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/gamepads. Updating xinputgamepad.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/geometryloaders. Updating defaultgeometryloader.dll. Updating gltfgeometryloader.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/iconengines. Updating qsvgicon.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/imageformats. Updating qgif.dll. Updating qicns.dll. Updating qico.dll. Updating qjpeg.dll. Updating qsvg.dll. Updating qtga.dll. Updating qtiff.dll. Updating qwbmp.dll. Updating qwebp.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/platforminputcontexts. Updating qtvirtualkeyboardplugin.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/platforms. Updating qwindows.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/qmltooling. Updating qmldbg_debugger.dll. Updating qmldbg_inspector.dll. Updating qmldbg_local.dll. Updating qmldbg_messages.dll. Updating qmldbg_native.dll. Updating qmldbg_nativedebugger.dll. Updating qmldbg_profiler.dll. Updating qmldbg_quickprofiler.dll. Updating qmldbg_server.dll. Updating qmldbg_tcp.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/renderplugins. Updating scene2d.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/scenegraph. Updating qsgd3d12backend.dll. Creating directory C:/Users/me/Documents/deploy-win10-milestone-5-stripped-trytofix/sceneparsers. Updating assimpsceneimport.dll. Updating gltfsceneexport.dll. Updating gltfsceneimport.dll. Creating C:\Users\me\Documents\deploy-win10-milestone-5-stripped-trytofix\translations... Creating qt_ar.qm... Creating qt_bg.qm... Creating qt_ca.qm... Creating qt_cs.qm... Creating qt_da.qm... Creating qt_de.qm... Creating qt_en.qm... Creating qt_es.qm... Creating qt_fi.qm... Creating qt_fr.qm... Creating qt_gd.qm... Creating qt_he.qm... Creating qt_hu.qm... Creating qt_it.qm... Creating qt_ja.qm... Creating qt_ko.qm... Creating qt_lv.qm... Creating qt_pl.qm... Creating qt_ru.qm... Creating qt_sk.qm... Creating qt_uk.qm...
However, when I run Qt my application, I receive this error:
The procedure entry point ... renderSynchronous@QRenderAspectPrivate@Qt3DRender ... could not be located in the dynamic link library
windeployqt.exedoesn't copy over all the dependencies. Specifically, there is a problem with
Qt3DRender::QRenderAspectPrivate::renderSynchronouswhich I'm using in my code like this:
#include <Qt3DRender/private/qrenderaspect_p.h> Qt3DRender::QRenderAspect *m_renderAspect; static_cast<Qt3DRender::QRenderAspectPrivate *>( Qt3DRender::QRenderAspectPrivate::get(m_renderAspect)) ->renderInitialize(saver.context()); static_cast<Qt3DRender::QRenderAspectPrivate *>( Qt3DRender::QRenderAspectPrivate::get(m_renderAspect))->renderSynchronous(); static_cast<Qt3DRender::QRenderAspectPrivate *> (Qt3DRender::QRenderAspectPrivate::get(m_renderAspect))->renderShutdown();
Does anybody know what DLL is missing for
windeployqt.exedoesn't copy it over?
IIRC, it should be in Qt3DRender .
Did you check with Dependency Walker whether your app can find all the libraries it uses ?
@SGaist Hi, I didn't check with dependency walker yet. I'll do it. What I did so far, was to copy over all Qt DLLs according to link below. Following this link instructions, my application works fine.:
windeployqt.execopies Qt3DRender DLL over into my application folder. So, if
Qt3DRender::QRenderAspectPrivate::renderSynchronousis inside Qt3DRender DLL, my application should work. But for some reason, it doesn't. I'm not sure why.
Did you compare the list of dlls that you have with
windeployqtand the version you have running ?
@SGaist Thanks. According to my research, version mis-match was one possibility. My application is built with Qt 5.11.2
and the DLLs are from Qt 5.11.2 too.
Eventually, we ended up manually checking DLLs one-by-one to find the dependencies.
Actually the error is due to version mis-match. My application is built with Qt 5.11.2 but the DLLs were being copied over from Qt 5.9.4 folder! I renamed Qt 5.9.4 folder and ran
windeployqtagain and the error got resolved.
Glad you found out and thanks for sharing !
Did you maybe use the windeployqt from the wrong version of Qt ?
m3g1dd last edited by
@SGaist That was a possibility. However, I was running the command like this on PowerShell to make sure I'm running the 5.11.2 version of
> C:\Qt\Qt5.11.2\5.11.2\msvc2017_64\bin\windeployqt.exe .\qt3dsceneeditor.dll
The above command was still giving me the error, until I renamed the Qt 5.9.4 folder. I'm not sure why.
That's strange... Did you check the
PATHenvironment variable ?
@SGaist When I check my system path variable, it includes
C:\Qt\Qt5.9.4\5.9.4\msvc2017_64\binas can be seen on PowerShell command line:
> $env:path C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Git\cmd;C:\Qt\Qt5.9.4\5.9.4\msvc2017_64\bin;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\WINDOWS\System32\OpenSSH\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Users\me\AppData\Local\Microsoft\WindowsApps;;C:\Users\me\AppData\Local\Programs\Microsoft VS Code\bin
Also, graphical interface: