QT5 使用静态编译环境,生成的动态库.so缺少xcb插件
我编译了QT5.3.2的源码包,使用的是静态编译方式(./configure -release -static -qt-xcb)。因为之前用过4.7.2版本,流程还是懂的。但是发现使用Qtcreator,生成不了.so文件,只是自动生成了.a文件。我看了一下编译输出日志和makefile文件,确实有点问题,可能是qt5的bug。(在之前使用的4.7.2就没有问题)。很奇怪!
后来我干脆又编译了一个Qt的非静态版本(./configure -qt-xcb)。使用Qtcreator在非静态编译的环境生成了正确的makefile,然后再拿到静态编译的环境下编译,终于生成了动态库.so文件,大概16-17M。
这个库文件,在使用的过程中,会报这个错误:
This application failed to start because it could not find or load the Qt platform plugin "xcb".
Reinstalling the application may fix this problem
这下可难坏我了,我看网上人说缺少libqlinuxfb.so,libqminimal.so,libqoffscreen.so,libqxcb.so这4个文件,我把这4个文件静态链接进去也不行。ldd也没看到缺少什么依赖库。
望请大神指点,谢谢!
1、QT5的静态编译环境为什么不能使用Qtcreator正常生成.so动态库文件?
2、怎样解决动态库报缺少xcb插件的问题?
相关推荐
libX11生成libX11-xcb.so.1
解决部分Linux操作系统在安装Qt时候,缺少libX11-xcb.so.1文件的问题! 详细步骤可以查看CSDN IT1995博客
Qt 5.9.9静态编译与xcb插件部署实战解析
在Linux环境下进行Qt应用开发与部署时,静态编译是解决跨系统依赖问题的有效手段。静态链接将Qt核心库直接集成进可执行文件,避免了目标机器上缺少libQt5Core等动态库的困扰。然而,静态编译并非一劳永逸,特别是涉及xcb平台插件时,系统级X11相关库的动态依赖依然可能导致程序启动失败。从glibc版本兼容性出发,基于CentOS 7、RHEL 7等老系统的静态Qt包(如qt-5.9.9-gcc485-libc217)能够显著提升二进制包的便携性。本文拆解静态Qt包的构建方法、configure参数选择
Ubuntu 22.04上Qt Creator启动报‘xcb’插件错误?别慌,一个命令帮你搞定依赖缺失
本文详细解析了Ubuntu 22.04上Qt Creator启动时常见的‘xcb’插件错误,提供了从诊断到解决的完整方案。通过使用Qt插件调试模式和ldd工具,开发者可以快速定位缺失的依赖库,并通过简单的apt命令安装解决。文章还提供了一键安装所有可能xcb依赖的解决方案,帮助开发者高效解决问题。
Qt 5.9.9 静态编译与 xcb 插件部署指南:老系统 Linux 环境兼容性实践
Linux 环境下 Qt 应用部署时,动态库缺失和平台插件加载失败是常见难题,例如缺少 libQt5Core.so 或报出 'could not load platform plugin xcb'。静态编译技术将 Qt 核心库与 xcb 平台插件直接链入可执行程序,有效削弱运行时对动态库的依赖,对 CentOS 7 等老系统尤为适用。理解 glibc 版本兼容性、xcb 协议工作原理及静态插件导入机制,是构建高可移植性 Qt 应用的关键。本文以 qt-5.9.9-gcc485-libc217-static-
Ubuntu18.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题
问题描述 安装Qt5.15.0后,在运行测试用例时弹出错误: qt.qpa.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: eglfs, li


