Qt5和CMAKE_AUTORCC

时间:2016-08-11 13:17:35

标签: 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文件。但是,在项目构建时,它会失败,因为文件不存在,并且不会生成。我还尝试将CMAKE_AUTORCC设置为OFF,并使用QT5_ADD_RESOURCES。这并不会删除ui预建步骤,但不会将qrc.cpp添加到项目中。

我使用的是Qt 5.6.0和cmake 3.5.2。

1 个答案:

答案 0 :(得分:4)

我意识到已经差不多4个月了,但我刚才遇到了同样的问题,并仔细阅读了你的问题。在浏览了图标/ qrc资源系统的Qt doc之后,我找到了一个有效的解决方案。我在同一个 <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="#"> <span class="glyphicon glyphicon-home" aria-hidden="true"></span> Home</a></li> <li><a href="#aboutus"> <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> About</a></li> <li><a href="#menu"> <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> Menu</a></li> <li><a href="#contactus"> <i class="fa fa-envelope-o"></i> Contact</a></li> </ul> </div> 文件中拥有所有3个设置 - 之前有前两个设置:

CMakeLists.txt

然后当你添加你的exe / dll时,这样做:

set (CMAKE_AUTOMOC ON)
set (CMAKE_AUTOUIC ON)
set (CMAKE_AUTORCC ON)

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

File menu and toolbar

当然,我也可以将.qrc个文件合并到.qrc中,但我希望我的列表保持同质。无论你做什么,请仔细阅读Qt Resource Doc,以便正确包含图标。希望这会有所帮助。