Basic Qt3D Example fails to run correctly when deployed.
-
Hi.
I have usedwindeployqt.exe
before 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...
Since
QT_OPENGL
needs to be set todesktop
instead ofangle
, 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.Also the
Dependencies
tool did not report any missing dependencies for the binary.Any ideas what I am missing here?
Thanks! -
Hi,
I don't remember for which version it was fixed but there were plugins missing when deploying Qt3D based application at some point.
Check that.
You can verify what is currently loaded running your application with the
QT_DEBUG_PLUGIN
environment variable set to 1. -
@SGaist said in Basic Qt3D Example fails to run correctly when deployed.:
QT_DEBUG_PLUGIN
Thank you!
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\Qt3D
folder to the deployment folder.Cheers!