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

  • Post author:
  • Post category:其他


最近在麒麟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



版权声明:本文为lazydz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。