![Qt启动错误:符号查找错误:libQt5XcbQpa.so.5:未定义符号:FT_Get_Font_Format](https://linux22.com/image/1595110/Qt%E5%90%AF%E5%8A%A8%E9%94%99%E8%AF%AF%EF%BC%9A%E7%AC%A6%E5%8F%B7%E6%9F%A5%E6%89%BE%E9%94%99%E8%AF%AF%EF%BC%9AlibQt5XcbQpa.so.5%EF%BC%9A%E6%9C%AA%E5%AE%9A%E4%B9%89%E7%AC%A6%E5%8F%B7%EF%BC%9AFT_Get_Font_Format.png)
首先我从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