Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Basic Qt3D Example fails to run correctly when deployed.
Diracsbracket last edited by Diracsbracket
I have used
windeployqt.exebefore to deploy both C++ and QML applications on Windows 10.
However, as I tried to deploy the Qt3D: QML wireframe Example and run it, only the window shows; the trefoil knot does not (running the example in Qt Creator works).
I used the following script for the deployment:
@echo off if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit ) call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 set BUILD_DIR="D:\Qt\Examples\Qt-5.11.0\qt3d\build-wireframe-Desktop_Qt_5_11_0_MSVC2017_64bit3-Debug\debug" set DEPLOY_EXE=D:\Qt\5.11.0\msvc2017_64\bin\windeployqt.exe set BUILD_EXE=wireframe.exe set OUT_EXE="wireframe.exe" set OUTDIR=%BUILD_DIR%\..\..\_Deployment\Wireframe_Debug set BUILD_DRIVE=%BUILD_DIR:~1,1%: set CD_BUILD=cd %BUILD_DIR% set QMLDIR="D:\Qt\5.11.0\msvc2017_64\qml" set DEPLOY=%DEPLOY_EXE% --dir %OUTDIR% --qmldir %QMLDIR% %BUILD_EXE% --compiler-runtime --force --verbose 1 %BUILD_DRIVE% %CD_BUILD% %DEPLOY% copy %BUILD_EXE% %OUTDIR%\%OUT_EXE% %SystemRoot%\explorer.exe %OUTDIR% set /p=Hit ENTER to continue...
QT_OPENGLneeds to be set to
angle, I also made sure that environment variable is defined as such in my Windows system environment settings (I used to only change it in the Qt Creator Run-time environment settings) , but to no avail.
Dependenciestool did not report any missing dependencies for the binary.
Any ideas what I am missing here?
I don't remember for which version it was fixed but there were plugins missing when deploying Qt3D based application at some point.
You can verify what is currently loaded running your application with the
QT_DEBUG_PLUGINenvironment variable set to 1.
Diracsbracket last edited by
I should have looked to the Debugging Techniques page first...
Setting the above environment variable resulted in the following output when deployed:
qrc:/main.qml:53:1: module "Qt3D.Render" is not installed qrc:/main.qml:55:1: module "Qt3D.Extras" is not installed qrc:/main.qml:54:1: module "Qt3D.Input" is not installed qrc:/main.qml:52:1: module "Qt3D.Core" is not installed
So all that needed to be done was to copy the
Qt\5.11.0\msvc2017_64\qml\Qt3Dfolder to the deployment folder.