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