我的 /usr/lib 下的 libfontconfig.so 和 libfontconfig.so.1 是 libfontconfig.so.13.0 的软链接,今天启动一个 GUI 软件时,遇到报错
fc-list: symbol lookup error: /usr/lib/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var
,通过下载 libfontconfig.so.1.11.1 并且把它们链接到 1.11.1 解决了问题,可以正常启动了。
请问链接到旧版会影响其他软件的字体显示吗?系统上没有被我主动配置使用 /usr/lib/libfontconfig.so.1 的软件,我试了下浏览器和 libreoffice 现在可以正常工作,但会不会有某些软件默认使用 /usr/lib/libfontconfig.so.1,而在链接到旧版之后,恰好不能工作了?
离线
软件不会有问题。库后边带版本号本就是为了多版本共存。不要动系统里已有的软链接。
不过新版的 fontconfig 配置在旧版本下可能有有错。
离线
谢谢依老师~❤️
离线
哎等等,FT_Done_MM_Var 这个是 freetype2 里的符号吧……
离线
啊,我不懂哎……我找到 Wiki 里一个一样的报错的解决办法,里面也提到 freetype。
离线
今天那个 GUI 软件的作者花了好大功夫装了 Arch 虚拟机,复现了我电脑上的报错。他告诉我,把下载的 libfontconfig.so.1.11.1 放到那个软件的根目录下应该就可以了,现在我不改软链接也能启动那个软件 (https://github.com/BLKSerene/Wordless) 了。
离线
啊,我不懂哎……我找到 Wiki 里一个一样的报错的解决办法,里面也提到 freetype。
我按照 Wiki 里的办法让 Wordless 使用系统的 freetype 库,之前的报错没有了,但出现了新的报错:
fc-list: symbol lookup error: /usr/lib/libfreetype.so.6: undefined symbol: hb_ot_tags_from_script_and_language
离线
今天那个 GUI 软件的作者花了好大功夫装了 Arch 虚拟机,复现了我电脑上的报错。他告诉我,把下载的 libfontconfig.so.1.11.1 放到那个软件的根目录下应该就可以了,现在我不改软链接也能启动那个软件 (https://github.com/BLKSerene/Wordless) 了。
总感觉你的做法不太好,我看看能不能打个包吧。 python依赖有点多,我打不来。(太多不在aur的了)
最近编辑记录 sukanka (2023-08-18 23:30:32)
离线
hb_ot_tags_from_script_and_language 这个看名字应该是 harfbuzz 的。开源软件的话,建议你自己编译打包,这样可以链接到系统上的库版本,就不用自己这么麻烦的逐个库找了。也可以考虑 flatpak 之类的容器方案。
离线
哦,既然作者已经装好 Arch 了,那让他编译一份适用于 Arch 的二进制文件也不错的。
离线