我正在尝试使用Qt移植现有项目以使用cmake。该项目有(几个)ui和(一个)qrc文件。在CMakeLists.txt中,如果我使用:
set(CMAKE_AUTOUIC ON)
Run Code Online (Sandbox Code Playgroud)
并生成一个Visual Studio(2015)项目,它具有一个预构建步骤,即从ui文件生成源,并将这些生成的文件添加到VS项目中。但是,如果我将qrc文件包括在项目源中,然后进行设置:
set(CMAKE_AUTORCC ON)
Run Code Online (Sandbox Code Playgroud)
生成的项目不再具有预构建步骤。它确实包含相应的qrc.cpp文件。但是,在项目构建时,它失败是因为该文件不存在,也不会生成。我也尝试设置CMAKE_AUTORCC为OFF,并使用QT5_ADD_RESOURCES。这不会删除ui预构建步骤,但是不会将添加qrc.cpp到项目中。
我正在使用Qt 5.6.0和cmake 3.5.2。
我知道已经快四个月了,但是我刚才遇到了同样的问题,并仔细阅读了您的问题。浏览了icon / qrc资源系统上的Qt文档后,我有了一个可行的解决方案。我将所有3个设置都放在同一个CMakeLists.txt文件中-以前有前两个设置:
set (CMAKE_AUTOMOC ON)
set (CMAKE_AUTOUIC ON)
set (CMAKE_AUTORCC ON)
Run Code Online (Sandbox Code Playgroud)
然后,当您添加exe / dll时,请执行以下操作:
addlibrary (${myDLL} SHARED ${mySRC_LIST} ${myQRC_LIST})
Run Code Online (Sandbox Code Playgroud)
您猜对了,新文件${myQRC_LIST}列表包含.qrc文件列表。瞧!我的第一次尝试就得到了这个结果,这是非常罕见的!
当然,我也可以将.qrc文件合并到一起${mySRC_LIST},但是我希望保持列表的一致性。无论您做什么,都请通读Qt Resource Doc,以便正确包含图标。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |