使用 make 时缺少 readline 库

使用 make 时缺少 readline 库

我正在尝试编译 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

您是否./autogen.sh按照手动的

答案2

Makefile 可能已损坏,似乎无法链接 readline。我通过添加-lreadline来使其正常工作LDFLAGS。因此,请执行以下操作:

LDFLAGS-找到以in开头的行

/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

应位于/ncmpcpp目录中的第 260 行和中的第 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需要祈祷最好的结果,如果有效的话,就按照说明继续。

祝你好运!

相关内容