Я пытаюсь скомпилировать ncmpcpp, и когда я добираюсь до издания сделать команды, я получаю несколько ошибок, таких как:
/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 пакетом, но я уже установил его от официального repos, и у меня есть файл/usr/include/readline/readline.h, который ncmpcpp включает в "window.cpp", таким образом, я действительно не понимаю то, что происходит здесь.
Вы работали ./autogen.sh
, как описано руководство ?
Make-файл (вероятно), повреждается, это, кажется, не связывает 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
dir и 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
и надежда на лучшее, и если это работает, продолжите согласно инструкциям.
Всего наилучшего