You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake编译Qt项目出现qrc_icons.cpp不是目录警告该如何解决?

警告触发原因

这个警告是GCC/Clang编译器前端抛出的,触发的核心原因是:你将qt5_add_resources输出的源文件路径,错误配置到了编译器的头文件搜索目录参数中。

  • qt5_add_resources(RESOURCES xxx.qrc)执行后,${RESOURCES}变量存储的是生成的qrc_icons.cpp文件的完整绝对路径,该文件是需要参与编译的C++源文件,不是目录。
  • 如果你在CMake配置中错误地将${RESOURCES}传入了include_directories、target_include_directories这类用于配置头文件搜索路径的接口,CMake会将该路径拼接到编译器的-I参数后。编译器读取-I参数时发现后跟的是普通文件而非目录,就会抛出xxx: not a directory的警告。
  • 警告在编译main.cpp时触发,是因为编译每个源文件时都会加载全局的头文件搜索路径配置。

解决方案

  1. 检查项目所有CMakeLists.txt中的头文件搜索路径配置,找到将${RESOURCES}传入include_directories/target_include_directories的错误代码行,直接删除即可。
  2. 确认${RESOURCES}变量被正确添加到目标的源文件列表中,正确写法参考:
add_executable(project
    App/main.cpp
    ${RESOURCES}
    # 其他源文件
)
  1. 修改完成后删除构建目录的所有缓存文件,重新执行CMake配置和构建即可消除警告。

内容的提问来源于stack exchange,提问作者Piotr Chmielewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:36:03