Я пытаюсь скомпилировать 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 ", поэтому я не совсем понимаю, что здесь происходит.
Файл 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]
Удачи!