Приложение QML с плагином C++ (cmake) добавляет файл ресурсов

Приложение QML с плагином C++ (cmake) добавляет файл ресурсов

Как добавить файл qrc в проект "QML app with C++ plugin (cmake)"? Я не могу найти рабочую инструкцию. Я нашел только одно, добавьте это в CMakeLists.txt:

qt5_add_resources(RESOURCES modules/ProjectName/resources.qrc)

После этого файл наконец-то отображается в дереве файлов в Qt, но очевидно, что файл не включен в исполняемый файл после компиляции. Что делать?

решение1

qt5_add_resources(RESOURCES modules/ProjectName/resources.qrc)

Эта штука преобразует файлы qrc в файлы C++. Имена файлов C++ хранятся в переменной RESOURCES.

Исполняемые файлы и библиотеки компилируются из файлов C++ с помощьюдобавить_исполняемый файлидобавить_библиотекув CMakeFiles.txt. В шаблоне проекта "QML app with C++ plugin (cmake)" часть "C++ plugin" означает библиотеку. Так что где-то в CMakeFiles.txt естьдобавить_библиотеку. Туда следует добавить файлы ресурсов:

add_library(Myappbackend MODULE
    ${Myappbackend_SRCS}
    ${RESOURCES}
)

В качестве альтернативы, qrc может быть скомпилирован непосредственно в отдельную библиотеку с помощьюqt5_add_resourcesмакрос или вообще не компилируется (поэтому нетqt5_add_resourcesвообще) и загружаться приложением Qt во время выполнения (см., например, исходный код ядра ubuntu-terminal-app).

решение2

set(CMAKE_AUTORCC ON)
add_executable(${PROJECT_NAME} ${SRC_LIST} modules/ProjectName/resources.qrc)

Связанный контент