Всем доброго дня.
Пробуем использовать для копирования qt-зависимостей приложения не ручной вызов windeployqt (ну простите за винду, как будет понятно ниже, вопрос скорее про работу qt чем про конкретно виндовс-специфичные штуки), а через использование соответствующих функций cmake (т.е. ьех функций, которые добавлены библиотекой qt), а именно:
qt_add_executable(...
qt_add_qml_module(...
qt_deploy_runtime_dependencies(...
qt_deploy_qml_imports(...
и далее вызывается
cmake --install . --config Release --prefix ...
Так вот по сравнению с тем, что получается в итоге после вызова windeployqt у результата после указанных cmake команд в каталоге qml отсутствуют файлы *.qml
и *.qmltypes
.
Например вот содержимое каталога qml/QtMultimedia/
после вызова windeployqt:
qmldir
quickmultimediaplugin.dll
Video.qml
plugins.qmltypes
а вот его содержимое после указанных команд cmake и вызова cmake –install:
qmldir
quickmultimediaplugin.dll
При этом приложение вроде как запускается и работает, но там много функционала, возможно мы что-то не видим, что может не работать. Вопрос: эти файлы нужны в развертнутом приложении или нет?
Update 0: исправил, поосле ручного вызова windeployqt получается больше файлов (*.qml и *.qmltypes).
Update 1: Согласно ответам https://bugreports.qt.io/browse/QTBUG-126437:
The qml files are embedded into qt qrc resources, are are compiled and linked into the qml modules. So it is not necessary anymore to deploy them as files.
The qmltypes files are only used by tooling like Qt Creator, and perhaps other qml tools like qmllint. Given that you are deploying the application with the aim to run it on a machine, you're past the development point, no tooling will be executed anymore, so you don't need the qmltypes files.