首页 > 解决方案 > 如何在使用 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 无法运行,因为它找不到这些源。什么是丢失的位?

标签: qtcmake

解决方案


抱歉,聚会有点晚了,但您必须尝试删除set(CMAKE_AUTORCC ON)吗?

我有几乎相同的实现,并且<qmlfile_name>_qml.cpp文件生成和编译正确。

在我的实现中,我有:

  • 不同的 CMake 属性名称(resource_files)
  • 我没有使用 AUTORCC
  • 我在构建目录中自动生成 qrc/qmldir 文件(但这没关系)
  • qml filesadd_executable参数列表中添加了列表,因为我想在我的 IDE 中看到它们。

推荐阅读