![libgs에게 다른 자유 유형 구현을 사용하도록 어떻게 알릴 수 있나요?](https://linux55.com/image/10813/libgs%EC%97%90%EA%B2%8C%20%EB%8B%A4%EB%A5%B8%20%EC%9E%90%EC%9C%A0%20%EC%9C%A0%ED%98%95%20%EA%B5%AC%ED%98%84%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8F%84%EB%A1%9D%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%95%8C%EB%A6%B4%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
그래서 1년을 사용한 후에 내 프린터는 더 이상 인쇄하지 않기로 결정했습니다. 문제를 해결한 후 컵 오류 로그에 다음과 같은 내용이 표시되는 것을 발견했습니다.
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
..
그런 다음 grep은 readelf -Ws <path>/freetype-infinality/libfreetype.so.6
실제로 FT_Property_Set을 정의하지 않았음을 보여줍니다. 나는 또한 "일반적인" 자유 유형 구현을 설치했고 grep은 readelf -Ws <path>/libfreetype.so.6.14.0
그것이 FT_Property_Set을 정의한다는 것을 보여줍니다. 따라서 무한 버전을 제거한 후 libgs는 일반 libfreetype.so를 사용하므로 인쇄를 계속할 수 있습니다. 내 질문은 libgs에게 무한대를 제거하지 않고 일반 자유 형식 라이브러리를 사용하도록 지시할 수 있다는 것입니다(그래서 다른 프로그램에서는 계속해서 이를 사용하게 됩니다).
답변1
한 가지 해결책은 LD_PRELOAD를 원래 libfreetype.so로 설정하는 것입니다. 다른 하나는 최신 libfreetype(2.8.1)을 사용하여 무한성을 다시 컴파일하는 것입니다.