неопределенная ссылка на `hb_ft_font_create' в Linux

При компиляции панго я получаю эту ошибку:

lib/libfreetype.so: undefined reference to `hb_ft_font_create'

Я скомпилировал freetype и harfbuzz; также я передаю -lfreetype и -lharfbuzz в переменную LIBS.


person nitin kumar    schedule 20.04.2015    source источник
comment
Проверить порядок библиотек: -lfreetype -lharfbuzz или -lharfbuzz -lfreetype? Это имеет значение.   -  person gomons    schedule 20.04.2015
comment
Пробовал оба. Ни один не работал.   -  person nitin kumar    schedule 21.04.2015
comment
Порядок использования других библиотек тоже имеет значение. Посмотрите здесь: linuxtopia.org/online_books/an_introduction_to_gcc/. Попробуйте выяснить, где символ hb_ft_font_create определен в используемой вами библиотеке.   -  person gomons    schedule 21.04.2015
comment
Это циклично: stackoverflow.com/questions/49896474/ плюс комментарии   -  person rogerdpack    schedule 30.01.2019


Ответы (3)


Найдите определение и объявление функции «hb_ft_font_create». удалите любые «внешние», «встроенные» или любые дополнительные ключевые слова перед возвращаемым типом. что-то вроде этого:

FUNC_DEF extern blah blah blah hb_face_t* hb_ft_face_create()

to

hb_face_t* hb_ft_face_create()

как в декларации, так и в определении; Надеюсь, поможет.

person Omid    schedule 19.06.2017

Я предполагаю, что вы используете Freetype как часть какой-то другой библиотеки, и в этом случае вам может не понадобиться harfbuzz, который, кажется, предназначен для некоторого сглаживания шрифтов.

Если это так, в верхней части cmakelists.txt для FreeType просто добавьте set (CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz TRUE) для сборки FreeType не требуется.

person Mich    schedule 07.03.2019

Я столкнулся с той же проблемой и решил ее следующим образом: RE ./настроить harfbuzz и установить...

person CXMA479    schedule 17.11.2015