В Qt5 было просто работать с ресурсами QML в статической библиотеке. Мы просто создали файл .qrc для включения файлов QML вместе с qmldir, установили QML_IMPORT_PATH для обнаружения в Qt Creator и использовали макрос Q_INIT_RESOURCE для инициализации ресурсов во время выполнения.
Однако в Qt6, с появлением новых исправлений и изменений в рабочем процессе CMake, нам теперь нужно использовать функцию qt_add_qml_module для создания .qrc файл для файлов QML.
Я также нашел сгенерированный файл qrc и файл инициализации CPP. Оба файла не используют макросы Q_INIT_RESOURCE. Это говорит о том, что в статической сборке ресурсы не будут загружены.
Автоматически создаваемая оболочка ресурса:
Код: Выделить всё
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
// This file was generated by the qt_add_resources command.
#include
QT_DECLARE_EXTERN_RESOURCE(qmake_QEQuick3d)
namespace {
struct resourceReferenceKeeper {
resourceReferenceKeeper() { QT_KEEP_RESOURCE(qmake_QEQuick3d) }
} resourceReferenceKeeperInstance;
}
- Какие действия нам следует предпринять? взять при работе со статической библиотекой, включающей файлы QML?
- В частности, где нам следует разместить макрос Q_INIT_RESOURCE в этой новой настройке Qt6?
Подробнее здесь: https://stackoverflow.com/questions/793 ... qml-module