【发布时间】:2016-08-11 13:17:34
【问题描述】:
我正在尝试使用 Qt 移植现有项目以使用 cmake。该项目有(几个)ui 和(一个)qrc 文件。在 CMakeLists.txt 中,如果我使用:
set(CMAKE_AUTOUIC ON)
并生成一个 Visual Studio (2015) 项目,它有一个预构建步骤,从 ui 文件生成源代码,并将这些生成的文件添加到 VS 项目中。但是,如果我在项目源中包含qrc 文件,然后设置:
set(CMAKE_AUTORCC ON)
生成的项目不再具有预构建步骤。它确实包含相应的qrc.cpp 文件。但是,当项目构建时,它会因为文件不存在而失败,并且不会生成。我还尝试将CMAKE_AUTORCC 设置为OFF,并使用QT5_ADD_RESOURCES。这不会删除 ui 预构建步骤,但不会将 qrc.cpp 添加到项目中。
我正在使用 Qt 5.6.0 和 cmake 3.5.2。
【问题讨论】:
-
从您的描述中不清楚哪个构建步骤没有被执行:uic 或 rcc。请提供MCVE 以获得有意义的答案。
-
rcc 永远不会执行,使用我描述的任何一种方法。如果我使用
CMAKE_AUTORCC OFF,则 uic 将执行。如果我使用CMAKE_AUTORCC ON,那么uic就不会执行。 -
你设置“set(CMAKE_INCLUDE_CURRENT_DIR ON)”了吗?您的文件应该在当前目录中生成