@mainentrypoint

Как решить проблему с устаревшей функцией?

Добрый день. Имеется библиотека libpng, которую я связываю со своей программой при сборке. На этапе линковки возникает такое сообщение:
/home/projects/smartbot/game/libs/libpng/lib64/libpng.so: undefined reference to `pow@GLIBC_2.29'

Я, не зная что библиотеки могут запрашивать еще и подпрограммы определенной версии библиотеки, было подумал, что почему-то не подключается стандартная библиотека с математикой. Флаг сборки -lm дал отрицательный ответ:
/home/projects/smartbot/game/libs/libpng/lib64/libpng.so: undefined reference to `pow@GLIBC_2.29'

Далее я пошел проверять версию glibc:
usr@pc:~$ ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1) 2.27

В репозитории это последняя версия, поэтому обновить до более высокой версии мне удалось
Из этого я сделал вывод: версия стандартной библиотеки слишком низкая. Попытки скачать и собрать из исходников glibc 2.29 у меня вышли провальными из-за пока не слишком высоких знаний в работе с инструментами и с linux вообще, поэтому решил спросить здесь
Возможно стоит произвести установку посредством apt? Где в таком случае искать файлы библиотек или папки include? Спасибо за внимание
  • Вопрос задан
  • 301 просмотр
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Установите libpng из пакетов в систему, поставьте к ней dev пакет и используйте ее в своем проекте.
В пакетах содержится версия libpng совместимая с вашей системой.
glibc тесно связана с ядром, поэтому просто так ее не собрать и версию не изменить. Она идет в комплекте с ядром.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы