Biblioteca readline ausente ao usar make

0

Estou tentando compilar o ncmpcpp, e quando eu começo a emitir o comando make, recebo vários erros, como:

/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'

E assim por diante. Parece que o problema está nas bibliotecas readline e no pacote libreadline-dev, mas eu já o instalei nos repositórios oficiais e tenho o arquivo /usr/include/readline/readline.h, que ncmpcpp inclui em "window.cpp ", então eu realmente não entendo o que está acontecendo aqui.

    
por Some Guy 15.01.2015 / 22:48

2 respostas

0

Você executou ./autogen.sh conforme descrito no manual ?

    
por sмurf 16.01.2015 / 00:58
0

Makefile é (provavelmente) quebrado, parece não ligar readline. Eu tenho que trabalhar adicionando -lreadline a LDFLAGS . Então, faça isso:

-encontre uma linha que começa com LDFLAGS em

/home/[myname]/ncmpcpp/Makefile

AND

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

Aqui está o que eu encontrei:

 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

Deve estar perto da linha 260 no /ncmpcpp dir e 225 no /ncmpcpp/src .

Em seguida, adicione

-lreadline

para isso, em algum lugar onde as outras bibliotecas estão. Eu tenho isso entre -lmpdclient e -lpthread , para que se torne

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

Depois disso, apenas make e espere pelo melhor e, se isso funcionar, siga as instruções.

Boa sorte!

    
por Lipastomies 17.01.2015 / 23:47