我正在尝试使用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。
答案 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}
文件列表。瞧!我第一次尝试这个结果,这是非常罕见的!
当然,我也可以将.qrc
个文件合并到.qrc
中,但我希望我的列表保持同质。无论你做什么,请仔细阅读Qt Resource Doc,以便正确包含图标。希望这会有所帮助。