如何告诉 libgs 使用另一个 freetype 实现?

如何告诉 libgs 使用另一个 freetype 实现?

因此,在使用一年后,我的打印机决定不再打印。经过一番故障排除后,我注意到杯子错误日志显示类似的内容

gs: symbol lookup error: <path>/libgs.so.9: undefined symbol: FT_Property_Set

我发现这很奇怪。由于 FT_Property_Set 显然是 freetype 库的一部分,我检查了:

ldd <path>/libgs.so.9
  ..
  libfreetype.so.6 => <path>/freetype-infinality/libfreetype.so.6
  ..

然后 grepreadelf -Ws <path>/freetype-infinality/libfreetype.so.6 实际上显示它没有定义 FT_Property_Set。我还安装了“正常”freetype 实现,并且 grepreadelf -Ws <path>/libfreetype.so.6.14.0确实显示它定义了 FT_Property_Set。因此,在删除无限版本后,libgs 使用正常的 libfreetype.so,我可以继续打印。我的问题是我是否可以告诉 libgs 以某种方式只使用普通的 freetype 库而不删除无限性(以便其他程序仍然会使用它)?

答案1

一种解决方案是将 LD_PRELOAD 设置为原始 libfreetype.so。另一种是使用最新的 libfreetype (2.8.1) 重新编译 infinality。

相关内容