libgs에게 다른 자유 유형 구현을 사용하도록 어떻게 알릴 수 있나요?

libgs에게 다른 자유 유형 구현을 사용하도록 어떻게 알릴 수 있나요?

그래서 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)을 사용하여 무한성을 다시 컴파일하는 것입니다.

관련 정보