Отсутствует библиотека readline при использовании make

Я пытаюсь скомпилировать ncmpcpp, и когда я получаю команду make, я получаю несколько ошибок, таких как:

/home/[myname]/ncmpcpp/src/window.cpp:329: undefined reference to `rl_bind_key'
/home/[myname]/ncmpcpp/src/window.cpp:144: undefined reference to `rl_point'
/home/[myname]/ncmpcpp/src/window.cpp:729: undefined reference to `readline'

И так далее. Кажется, проблема связана с библиотеками readline и пакетом libreadline-dev, но я уже установил его из официальных репозиториев, и у меня есть файл /usr/include/readline/readline.h, который ncmpcpp включает в "window.cpp ", поэтому я не совсем понимаю, что здесь происходит.

1
задан 16 January 2015 в 02:48

1 ответ

Файл Makefile (вероятно) сломан, кажется, что он не связывает readline. Я получил его для работы, добавив -lreadline в LDFLAGS. Итак, сделайте следующее:

- запишите строку, начинающуюся с LDFLAGS в

/home/[myname]/ncmpcpp/Makefile

И

/home/[myname]/ncmpcpp/src/Makefile

Вот та, что я найдено:

 LDFLAGS =  -lboost_filesystem -lboost_system -lboost_locale -lboost_program_options -lboost_regex -lboost_thread -lmpdclient  -lpthread -lncursesw -ltinfo -L/usr/lib/x86_64-linux-gnu -lcurl

Должно быть около строки 260 в каталоге /ncmpcpp и 225 в /ncmpcpp/src.

Затем добавить

-lreadline

в это где-то там, где находятся другие библиотеки. Я имею это между -lmpdclient и -lpthread, так что он становится

LDFLAGS =  -lboost_filesystem -lboost_system -lboost_locale -lboost_program_options -lboost_regex -lboost_thread -lmpdclient -lreadline -lpthread -lncursesw -ltinfo -L/usr/lib/x86_64-linux-gnu -lcurl

. После этого просто make и надейтесь на лучшее, и если это работает, продолжайте согласно инструкциям. [ ! d7]

Удачи!

0
ответ дан 24 May 2018 в 00:07

Другие вопросы по тегам:

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