CMake查找Qt6时提示找不到Widgets组件但配置文件存在如何解决?
问题原因
你当前的报错由两个核心配置错误导致:
- CMake不会自动展开字符串中的
~波浪号为用户主目录,你写的路径无法被正确识别 - 变量名定义错误:查找Qt6时CMake默认读取的根配置路径变量是
Qt6_DIR,你定义的Qt_DIR不会被识别,导致Qt6主配置文件无法正确索引组件的搜索路径
解决步骤
- 首先修正CMakeLists.txt中的配置,将路径和变量名修改为正确写法:
# 用$ENV{HOME}代替~获取主目录,变量名改为Qt6_DIR,路径精确到Qt6配置目录 set(Qt6_DIR "$ENV{HOME}/Qt/6.1.2/gcc_64/lib/cmake/Qt6") set(Qt_version 6) find_package(Qt${Qt_version} COMPONENTS Core Widgets REQUIRED) - 如果你不想硬编码路径到项目配置里,也可以在执行cmake命令时直接传入路径参数:
# 执行配置前先清空旧的build目录缓存 rm -rf build && mkdir build && cd build cmake .. -DQt6_DIR=/home/menkaur/Qt/6.1.2/gcc_64/lib/cmake/Qt6 - 检查安装Linux下Qt6 Widgets的必要依赖,缺失系统依赖也会导致组件被判定为不可用:
# Debian/Ubuntu 系发行版执行 sudo apt install libxcb-xinerama0 libxcb-cursor0 libxkbcommon-x11-0 - 每次修改配置后必须清空之前的CMake缓存,删除build目录下的
CMakeCache.txt文件后再重新执行配置,避免旧缓存干扰。
内容的提问来源于stack exchange,提问作者Arsen Zahray
相关产品推荐
相关产品推荐

