qt - 如何在使用 AUTORCC 的 CMake 项目中使用 qtquick_compiler_add_resources?
问题描述
我有一个使用 CMake 作为其构建系统的 Qt Quick 项目。我主要使用 Qt Creator 生成的 CMake 项目,所以我有
set(CMAKE_AUTORCC ON)
在我的根 CMakeLists.txt 中。
我最近了解了 QML 资源的提前编译,这应该会产生相当多的启动时间改进。描述如何将其与 CMake 一起使用的文档说我需要执行以下操作:
find_package(Qt5 COMPONENTS Quick Core Network)
find_package(Qt5QuickCompiler)
qtquick_compiler_add_resources(RESOURCES example.qrc)
add_executable(myapp ${SRC_LIST} ${RESOURCES})
qt5_use_modules(myapp Quick Core Network)
但据我所知,qtquick_compiler_add_resources
除了生成一个不存在的 C++ 文件列表之外什么也不做。我假设这些将由 QtQuick 编译器生成,但实际上,CMake 无法运行,因为它找不到这些源。什么是丢失的位?
解决方案
抱歉,聚会有点晚了,但您必须尝试删除set(CMAKE_AUTORCC ON)
吗?
我有几乎相同的实现,并且<qmlfile_name>_qml.cpp
文件生成和编译正确。
在我的实现中,我有:
- 不同的 CMake 属性名称(resource_files)
- 我没有使用 AUTORCC
- 我在构建目录中自动生成 qrc/qmldir 文件(但这没关系)
- 我
qml files
在add_executable
参数列表中添加了列表,因为我想在我的 IDE 中看到它们。
推荐阅读
- typescript - 获取 tslint 错误:`解析错误:预期表达式`
- haskell - Haskell - 在 where 语句中定义多个辅助函数
- laravel - 使用 Laravel Passport 身份验证服务器和单独的资源服务器是否意味着总会有两个请求?
- cassandra - 如何将现有列数据迁移到 Cassandra 数据库中的新列?
- c# - C#:由 Random 制成的 var 的四舍五入小数
- javascript - 有没有办法只分配新值而不是对象中的新变量
- javascript - 粘性导航栏功能失调
- regex - Powershell:在一行末尾和下一行开头搜索字符串,并输出行号
- class - 我正在尝试清除元素键上的错误对象但没有成功
- javascript - react-router-dom 页面不会切换?