2009-06-27 9 views
2

J'utilise ce code pour les fonctions d'histoire dans ma coquille: http://cc.byexamples.com/20080613/gnu-readline-how-to-keep-a-history-list-of-entered-command-lines/ mais quand je compile ce gcc, je suis arrivé cette erreurGNU readline Histoire fonction

$ gcc filename.c 
/tmp/ccay2CgM.o: In function `main': 
rl.c:(.text+0x9): undefined reference to `rl_abort' 
rl.c:(.text+0x13): undefined reference to `rl_bind_key' 
rl.c:(.text+0x1d): undefined reference to `readline' 
rl.c:(.text+0x61): undefined reference to `add_history' 
collect2: ld returned 1 exit status 
$ 
+0

pouvez-vous ajouter la commande exacte que vous utilisez pour compiler? – cube

Répondre

11

L'exemple compilation ligne est

g++ -o simple_rl{,.cpp} -lreadline 

Avez-vous oublié d'ajouter la ligne -leadline?

+3

Juste pour ajouter quelque chose ici, notez que '-lreadline' doit venir après le fichier source qui en a besoin sur la ligne de commande. J'ai passé beaucoup trop de temps à apprendre cela à la dure. ;) Voir http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html pour savoir pourquoi. – shanet

+0

Shanet, Merci beaucoup, je viens de passer plus de temps que je vais admettre à moi-même en découvrant mon je ne peux pas lier readline. Si vous postez la question à "pourquoi je ne peux pas lier libreadline", je ferai en sorte que tous mes amis vous changent. –

+0

shanet: MERCI ~! – Kalle

2

Compile avec ceci:

gcc -lreadline -lncurses -o simple_rl{,.cpp}