ошибка поиска символа: неопределенный символ: FT_Get_Font_Format - PullRequest
0 голосов
/ 05 марта 2020

Ошибка:

linux / FIT / fit: ошибка поиска символа: linux / FIT / fit: неопределенный символ: FT_Get_Font_Format

Это часть Android build.

Он не говорит мне, какой .so он искал.

Я искал этот символ

sudo grep -F "FT_Get_Font_Format" / -r --include="*.so*"

И он в куче .so файлов.

ВОПРОС

Как узнать, какой файл .so он ищет?

1 Ответ

0 голосов
/ 08 марта 2020

Он не сообщает мне, в каком .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 может быть слишком старой.

...