Неопределенная ссылка на новые функции NCURSES 6.1 (alloc_pair, reset_color_pairs) - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь использовать эти функции в своем коде, но ни одна не компилируется правильно.Я получаю ошибки, такие как undefined reference to 'alloc_pair' и collect2: error: ld returned 1 exit status.Другие функции (newwin, printw) работают нормально.Обе функции, кажется, установлены, просматривая man-страницы.Я также проверил журнал изменений libncurses-dev (с помощью apt), и в нем перечислен новый выпуск основной ветки разработки версии 6.1 (который, как показывает журнал GNU ncurses, содержит эти функции).Как я могу гарантировать правильную установку?

uname -a возвращает:

Linux hostname 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

РЕДАКТИРОВАТЬ: я также использую проверки if, чтобы убедиться, что я использую ncurses 6.1.(С NCURSES_VERSION)

1 Ответ

0 голосов
/ 30 ноября 2018

Пакеты Ubuntu для ncurses поддерживают только ABI 5, который, учитывая, что ABI 6 был стандартным в 2015 , делает Ubuntu немного позади кривой.

Вам нужен ABI 6 для новых функций,как упомянуто в примечаниях к выпуску :

Этот выпуск разработан для совместимости с исходными кодами ncurses 5.0–6.0;предоставление расширений для двоичного интерфейса приложения (ABI).Хотя источник по-прежнему может быть настроен для поддержки ABI ncurses 5, целью релиза является предоставление расширений ABI ncurses 6:

Конечно, вы можете скомпилировать ncurses для себя или использовать некоторыедистрибутив, который обновился до текущего ABI, но совместимость с исходным кодом намекает на то, что другие упаковщики, возможно, также не обновились.

...