如何在使用AUTORCC的CMake项目中使用qtquick_compiler_add_resources?

时间:2020-03-29 16:49:35

标签: qt cmake

我有一个Qt Quick项目,它使用CMake作为其构建系统。我主要参加了Qt Creator生成的CMake项目,所以我有

set(CMAKE_AUTORCC ON)

在我的根CMakeLists.txt中。

我最近了解了QML资源的提前编译,这应该可以大大改善启动时间。描述如何与CMake结合使用的documentation说,我需要执行以下操作:

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无法运行,因为它找不到这些源。遗漏了什么?

1 个答案:

答案 0 :(得分:0)

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

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

在我的实现中,我有:

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