【问题标题】:How to use qtquick_compiler_add_resources in a CMake project that uses AUTORCC?如何在使用 AUTORCC 的 CMake 项目中使用 qtquick_compiler_add_resources?
【发布时间】:2020-03-29 16:49:35
【问题描述】:

我有一个使用 CMake 作为其构建系统的 Qt Quick 项目。我主要使用 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 无法运行,因为它找不到这些源。什么是丢失的位?

【问题讨论】:

  • 不知道为什么这不起作用,我只是经历了AUTORCC的相同转换->编译并且上面确实有效,即RESOURCES是由生成的cpp文件列表快速编译器,然后将其添加到可执行文件(在我的情况下为库)。
  • 我的意思是列表本身看起来不错。但是没有任何东西会提示生成这些文件。

标签: qt cmake


【解决方案1】:

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

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

在我的实现中,我有:

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

【讨论】:

    猜你喜欢
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 2019-07-09
    相关资源
    最近更新 更多