麒麟v10 sp1系统qt程序打包后运行报错undefined symbol: XFree

        最近在麒麟v10 sp1系统上,打包qt程序后,运行程序会报错undefined symbol: XFree。前提还需要设置调试qt插件环境变量,才能看到该报错。

        如何设置调试qt插件环境变量?

终端输入命令:export QT_DEBUG_PLUGINS=1

        原因是什么?

经过分析发现,系统中存在多个版本的libGL.so.1(文件大小不同)

输入命令:

sudo find / -name libGL.so.1
输出:
/usr/lib/aarch64-linux-gnu/csmicro/libGL.so.1
/usr/lib/aarch64-linux-gnu/libGL.so.1
/usr/lib/aarch64-linux-gnu/mwv206/libGL.so.1
/usr/lib/aarch64-linux-gnu/sietium/libGL.so.1

ldd根据动态库搜索规则查找libqt5-ukui-platformtheme.so插件库的依赖库,找到的是/usr/lib/aarch64-linux-gnu/csmicro/libGL.so.1,然而它的正确依赖库应该是/usr/lib/aarch64-linux-gnu/libGL.so.1这个库

解决办法:

1.可以设置环境变量

export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH

2.打包时,拷贝完依赖库后,再多拷贝一次进行覆盖

cp /usr/lib/aarch64-linux-gnu/libGL.so.1 /xxx

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值