Как добавить файл 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)