2010-06-21 4 views
3

Cela devrait être une question assez simple - je suis en train de compiler Lua (ou plutôt lua-VEC, qui est une variante mineure) sur une CentOS Linux installer, et je obtenir l'erreur suivante:« ne peut pas trouver -lreadline » erreur lors de la compilation Lua

[[email protected] src]#make linux 
make all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" 
make[1]: Entering directory `/jt/flyboy/fly/lua/lua-vec/src' 
gcc -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline -lhistory -lncurses 
/usr/bin/ld: cannot find -lreadline 
collect2: ld returned 1 exit status 
make[1]: *** [lua] Error 1 

Cela suggère que la bibliothèque readline n'est pas installée. Mais ...

[[email protected] src]#ls /usr/lib/libreadline* 
/usr/lib/libreadline.so.5 /usr/lib/libreadline.so.5.1 

Fait intéressant, si je réarrange l'ordre de readline/histoire/ncurses, selon la première éventualité déclenche la même erreur, alors je soupçonne que ce soit une sorte de problème spécification du dossier, pas problème de bibliothèque manquant.

Des idées?


yum install readline-devel.x86_64 readline-devel.i386 ncurses-devel.i386 ncurses-devel.x86_64 

semble avoir fait le tour! La chose étrange est que j'ai compilé ceci avant sans ces libs ... mais assez de temps méditant les mystères de la vie ...

Répondre

9

libreadline ne suffit pas, il vous donnera des bibliothèques liées à readline. Vous avez besoin de libreadline-dev pour compiler le paquet qui dépend de readline comme dans le cas ci-dessus.

Dans Red Hat comme distros, le nom du paquet est readline-devel

commande suivante fera l'affaire dans un tel environnement:

$ yum install -y readline-devel

+3

ou readline-devel sur CentOS. 'yum install readline-devel' – nos

+0

Merci, nos. – mcandre

+0

Les noms de package sont différents sur CentOS. J'avais déjà essayé cette solution plus tôt, mais je me suis fait trébucher par les différents noms - voir ma solution pour les corriger. – watusimoto

Questions connexes