Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt5和CMAKE_自动抄送_C++_Qt_Cmake - Fatal编程技术网

C++ Qt5和CMAKE_自动抄送

C++ Qt5和CMAKE_自动抄送,c++,qt,cmake,C++,Qt,Cmake,我正在尝试使用Qt移植现有项目以使用cmake。该项目有(几个)ui和(一个)qrc文件。在CMakeLists.txt中,如果我使用: set(CMAKE_AUTOUIC ON) 并生成一个Visual Studio(2015)项目,它有一个预构建步骤,从ui文件生成源代码,并将这些生成的文件添加到VS项目中。但是,如果我在项目源中包括qrc文件,然后设置: set(CMAKE_AUTORCC ON) 生成的项目不再具有预构建步骤。它确实包含相应的qrc.cpp文件。但是,当项目生成时,它

我正在尝试使用Qt移植现有项目以使用cmake。该项目有(几个)
ui
和(一个)
qrc
文件。在CMakeLists.txt中,如果我使用:

set(CMAKE_AUTOUIC ON)
并生成一个Visual Studio(2015)项目,它有一个预构建步骤,从
ui
文件生成源代码,并将这些生成的文件添加到VS项目中。但是,如果我在项目源中包括
qrc
文件,然后设置:

set(CMAKE_AUTORCC ON)
生成的项目不再具有预构建步骤。它确实包含相应的
qrc.cpp
文件。但是,当项目生成时,它会失败,因为文件不存在,并且无法生成。我还尝试将
CMAKE\u AUTORCC
设置为
OFF
,并使用
QT5\u ADD\u RESOURCES
。这不会删除
ui
prebuild步骤,但不会将
qrc.cpp
添加到项目中


我正在使用Qt 5.6.0和cmake 3.5.2。

我意识到已经快4个月了,但我刚才遇到了同样的问题,并仔细阅读了你的问题。在浏览了icons/qrc资源系统上的Qt文档之后,我有了一个可行的解决方案。我在同一个
CMakeLists.txt
文件中设置了所有3个设置——之前启用了前两个:

set (CMAKE_AUTOMOC ON)
set (CMAKE_AUTOUIC ON)
set (CMAKE_AUTORCC ON)
然后,在添加exe/dll时,请执行以下操作:

addlibrary (${myDLL} SHARED ${mySRC_LIST} ${myQRC_LIST})
您猜对了,新的文件列表
${myQRC_list}
包含
.qrc
文件列表。瞧!我的第一次尝试我得到了这个结果,这是非常罕见的


当然,我也可以将我的
.qrc
文件组合到
${mySRC_LIST}
中,但我喜欢保持列表的同质性。无论你做什么,请通读一遍,以便正确地包含图标。希望这有帮助。

从您的描述中不清楚哪个构建步骤没有被执行:uic还是rcc。为了得到有意义的答案,请提供一个。rcc从不执行,使用我描述的任何一种方法。如果我使用
CMAKE\u AUTORCC OFF
,则将执行uic。如果我在上使用了
CMAKE\u AUTORCC,那么uic将不会执行。您是否设置了“set(CMAKE\u INCLUDE\u CURRENT\u DIR ON)”?您的文件应在当前目录中生成