Qt启动错误:符号查找错误:libQt5XcbQpa.so.5:未定义符号:FT_Get_Font_Format

Qt启动错误:符号查找错误:libQt5XcbQpa.so.5:未定义符号:FT_Get_Font_Format

首先我从qt官方网站下载了qt-opensource-linux-x64-5.12.3.run软件。

然后我安装了qt-开源-linux-x64-5.12.3.run使用 ./qt-opensource-linux-x64-5.12.3.run 命令在我的 rhel 7.4 系统中运行文件。

成功安装 qt 软件后,我从终端运行 qtcreator,如下所示,

[root@localhost bin]# ./qtcreator ./qtcreator:符号查找错误:/opt/Qt5.12.3/Tools/QtCreator/lib/Qt/plugins/platforms/../../lib/libQt5XcbQpa.so.5:未定义符号:FT_Get_Font_Format

我遇到了上面突出显示的错误。
请指导我解决这个问题。

我的系统详细信息: [root@localhost bin]# uname -a Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP 星期四 2017 年 7 月 6 日 19:56:57 EDT x86_64 x86_64 x86_64 GNU/Linux

答案1

我在 CentOS 7 上使用 QT 5.13 时遇到了同样的问题;我通过运行以下命令解决了该问题:

sudo yum update freetype-devel

如果这对您不起作用,请告诉我。

答案2

在 RHEL 7.4 上,该freetype软件包freetype-2.4.11-15.el7.x86_64.rpm定义了符号FT_Get_X11_Font_Format,但没有定义FT_Get_Font_Format

[root@localhost /]# readelf -s /lib64/libfreetype.so.6 | grep -i font_format
   406: 0000000000020960    43 FUNC    GLOBAL DEFAULT   11 FT_Get_X11_Font_Format

freetype API 已改变所以FT_Get_X11_Font_Format改名FT_Get_Font_Format版本 2.6

[root@localhost /]# readelf -s /lib64/libfreetype.so.6 | grep -i font_format
   345: 00000000000232a0    43 FUNC    GLOBAL DEFAULT   12 FT_Get_X11_Font_Format
   523: 0000000000023270    43 FUNC    GLOBAL DEFAULT   12 FT_Get_Font_Format

FT_Get_X11_Font_Format为了向后兼容,仍然存在。

使用 >= 2.6 编译的程序freetype可能使用新的 API,这样一来,这些程序将无法与旧版本的 一起运行freetype

您可以通过简单更新freetype和/或freetype-devel升级到版本 2.8(截至今天)来解决此问题:

yum update freetype
yum update freetype-devel

如果的响应yum update freetype-devel是:

没有标记为更新的软件包

那么说明你没有安装freetype-devel,因此只需要更新freetype

如果你无法使用yum,你可以下载freetype-2.8并手动升级:

rpm -Uvh freetype-2.8-12.el7.x86_64.rpm

相关内容