无法在 Archlinux 上找到或加载 Qt 平台插件“xcb”(写!AppImage)

Posted

技术标签:

【中文标题】无法在 Archlinux 上找到或加载 Qt 平台插件“xcb”(写!AppImage)【英文标题】:Could not find or load the Qt platform plugin "xcb" on Archlinux (Write! AppImage) 【发布时间】:2018-12-12 23:24:06 【问题描述】:

正在尝试安装 Write! Arch Linux 上的 AppImage,安装了 qt5,freetype2 2.9.1 和 fontconfig 2:2.13.1+12+g5f5ec56-1

[levi@astize 写!]$ ./write
此应用程序无法启动,因为它无法找到或加载 Qt 平台插件“xcb”
在 ””。

可用的平台插件有:xcb。

重新安装应用程序可能会解决此问题。
中止(核心转储)

使用QT_DEBUG_PLUGINS=1 运行时

[levi@astize 写!]$ ./write
QFactoryLoader::QFactoryLoader() 检查目录路径 "/tmp/.mount_unuY6s/usr/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() 查看“/tmp/.mount_unuY6s/usr/plugins/platforms/libqxcb.so”
在 lib /tmp/.mount_unuY6s/usr/plugins/platforms/libqxcb.so 中找到元数据,metadata=

    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    “元数据”:
        “钥匙”:[
            “xcb”
        ]
    ,
    "className": "QXcbIntegrationPlugin",
    “调试”:假,
    “版本”:329989



从插件元数据(“xcb”)中获取密钥
QFactoryLoader::QFactoryLoader() 检查目录路径“/tmp/.mount_unuY6s/usr/bin/platforms” ...
无法加载库 /tmp/.mount_unuY6s/usr/plugins/platforms/libqxcb.so:(/usr/lib/libfontconfig.so.1:未定义符号:FT_Done_MM_Var)
QLibraryPrivate::loadPlugin 在“/tmp/.mount_unuY6s/usr/plugins/platforms/libqxcb.so”上失败:“无法加载库/tmp/.mount_unuY6s/usr/plugins/platforms/libqxcb.so: (/usr/lib/ libfontconfig.so.1:未定义符号:FT_Done_MM_Var)"
此应用程序无法启动,因为它无法找到或加载 Qt 平台插件“xcb”
在 ””。

可用的平台插件有:xcb。

重新安装应用程序可能会解决此问题。
中止(核心转储)

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

在 Qt 中编译一个 c++ 应用程序并将其部署到生产机器后,我一直在努力解决这个错误。以下是我为解决此问题所做的一些事情。

安装 Qt 库。我的安装在我的开发机器上的~/Qt/5.9.8/gcc_64/lib/。我只是把这个目录复制到生产机器上。

使用ldd -v /path/to/your/app 查找并解决缺少库的问题。

设置环境变量: LD_LIBRARY_PATH=~/Qt/5.9.8/gcc_64/lib/:/path/to/any/custom/libs/for/your/app QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins

【讨论】:

【参考方案2】:

我认为问题与此错误有关:

/usr/lib/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var

您应该升级您的 fontconfig 库。尝试使用版本2.13

【讨论】:

您好,感谢您的回复!我试过了,不幸的是没有变化。但是,我确实设法通过使用LD_PRELOAD=/usr/lib/libfreetype.so ./RunWrite 来启动程序我该怎么做才能使这个更稳定的修复? @astize fontconfig 的版本高于 2.13。你可以试试其中一些。如果其他版本不行,恐怕解决办法就是使用那个环境变量(LD_PRELOAD

以上是关于无法在 Archlinux 上找到或加载 Qt 平台插件“xcb”(写!AppImage)的主要内容,如果未能解决你的问题,请参考以下文章

Spyder 无法启动 - “无法找到或加载 Qt 平台插件窗口”

解决archlinux下QT程序,以及wineQQ无法输入中文(.xinitrc)

如何在 Android 上重新启动 Qt 或 c++ 中的程序?

archlinux错误:无法提交处理 (无效或已损坏的软件包)

archlinux(kde桌面)下qt creater5.6编译时终端部分中字体无法显示,系统有中

无法找到或读取qt平台模块linuxfb