Skip to content

解决Qt更新后缺少libxcb-cursor库的问题

问题描述

在Ubuntu 20.04系统上更新Qt至6.5.0或更高版本后,启动Qt Creator时出现以下错误提示:

from 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin. 
Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. 
Reinstalling the application may fix this problem.

Available platform plugins are: minimalegl, scb, eglfs, minimal, linuxfb, vkkhrdisplay, offscreen, vnc, wayland, wayland-egl.

错误对话框截图

关键现象

  • 错误明确指向缺少xcb-cursor0libxcb-cursor0
  • 重装Qt无法解决问题
  • 系统仅能找到其他平台插件(minimalegl、eglfs等),但无法加载xcb插件

问题背景

Qt 6.5.0 开始增加了对libxcb-cursor库的依赖,如果您系统缺少该库,即使Qt本身安装正确,应用程序仍无法启动。

解决方案

针对Ubuntu/Debian系统

在终端执行以下命令安装缺失的依赖库:

bash
sudo apt update
sudo apt install -y libxcb-cursor-dev

安装完成后重启Qt Creator即可正常使用。

注意

某些情况下可能需要安装整个libxcb工具包:

bash
sudo apt install -y libxcb-*

但通常只需安装libxcb-cursor-dev即可解决问题。

针对Red Hat/Fedora系统

Red Hat系发行版需要安装不同的包名:

bash
sudo dnf install xcb-util-cursor

验证库是否已正确安装

安装完成后,可通过以下命令检查库文件是否存在:

bash
sudo find / -name "libxcb-cursor*.so*"

正常安装后应能看到类似以下输出:

/usr/lib/x86_64-linux-gnu/libxcb-cursor.so.0
/usr/lib/x86_64-linux-gnu/libxcb-cursor.so.0.0.0

问题原因分析

  1. 依赖关系变更
    Qt 6.5.0开始,XCB平台插件新增对libxcb-cursor库的依赖,该库负责处理鼠标光标渲染

  2. 系统包缺失
    Ubuntu 20.04默认不包含此库,手动安装Qt时也不会自动安装此依赖

  3. 库加载机制
    错误提示明确说明“找到了xcb插件但无法初始化”,因为底层依赖库缺失

注意事项

  1. 优先使用包管理器安装
    比重新编译Qt或手动复制库文件更可靠:

    bash
    # 不推荐手动复制库文件
    cp /path/to/libxcb-cursor* /usr/lib/
  2. 跨发行版区别

    发行版包名安装命令
    Ubuntu/Debianlibxcb-cursor-devsudo apt install ...
    RHEL/Fedoraxcb-util-cursorsudo dnf install ...
  3. 多版本兼容性
    如果使用旧版Qt,可通过修改qt.conf文件指定使用wayland平台临时解决:

    [Platforms]
    WindowsArguments = wayland

    但这只是权宜之计,安装正确依赖才是根本解决方案。

重要提醒

即使您安装了最新版Qt Creator,仍需确保系统包含必要的运行时依赖库。Qt安装包通常不包含这些系统级依赖。

  1. 环境清理
    若仍存在问题,尝试移除Qt配置文件夹后重启:
    bash
    rm -rf ~/.config/QtProject*

遵循以上解决方案,您应能解决Qt更新后因缺少libxcb-cursor库导致的启动失败问题。该方案适用于Qt Creator及所有基于Qt 6.5+的应用程序。