无法在 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错误:无法提交处理 (无效或已损坏的软件包)