Он не сообщает мне, в каком .so поиске.
Поиск всех загруженных библиотек.
В отличие от Windows, компоновщик UNIX не записывает, какой символ предоставлен какой библиотекой, и загрузчик ищет во всех загруженных в данный момент библиотеках (в порядке их загрузки) все символы, которые ему нужно разрешить.
Я искал этот символ sudo grep -F "FT_Get_Font_Format" / -r --include="*.so*"
Эта команда не различает guish между определением и ссылками на символ, поэтому этот вывод:
И он находится в куче .so файлов.
не говорит вам ничего полезного.
Правильный способ поиска определения из символ будет выглядеть следующим образом:
find / -name '*.so*' -type f -print0 |
xargs -o nm -AD | egrep ' [TDW] FT_Get_Font_Format'
Или вы можете просто погуглить его и обнаружить, что он является частью API FreeType и должен быть в libfreetype.so
.
Этот ответ предполагает, что ваша версия freetype может быть слишком старой.