当我已经使用 freetype 2.9 时,如何修复“libQt5XcbQpa.so.5:未定义符号:FT_Get_Font_Format”?

当我已经使用 freetype 2.9 时,如何修复“libQt5XcbQpa.so.5:未定义符号:FT_Get_Font_Format”?

我终于从 16.04 升级到了 18.04。Teamviewer 在 16.04 中运行良好。升级后,当我尝试启动 GUI 时,它显示:

/opt/teamviewer/tv_bin/TeamViewer: symbol lookup error: /opt/qt514/lib/libQt5XcbQpa.so.5: undefined symbol: FT_Get_Font_Format

我确保它已经在足够新的 freetype 版本上,因为整个 FT_Get_X11_Font_Format 与 FT_Get_Font_Format 问题通常会导致此错误。

看起来该功能可用:

rreese@rreese-desktop:~$ sudo readelf -s /usr/lib/x86_64-linux-gnu/libfreetype.so | grep -i font_format
   195: 000000000000fc10     2 FUNC    GLOBAL DEFAULT   12 FT_Get_X11_Font_Format
   208: 000000000000fbe0    43 FUNC    GLOBAL DEFAULT   12 FT_Get_Font_Format

我尝试升级 QT,认为这可能是问题所在,但 5.14 也给出了同样的错误。我有点束手无策了。有人有什么建议吗?

谢谢!

答案1

因此,事实证明,/etc/ld.so.conf.d/ 中有一个针对 FFMPEG 的旧“修复”,它指向另一个 lib 文件夹。它一定是优先的,因为我看到当我使用 strace 运行 teamviewer 时,它使用的是那里的 libfreetype.so.6。一定是没有 FT_Get_Font_Format 的旧版本,因为当我删除该“修复”时,它抓取了正确的版本并且一切正常。

相关内容