2009-06-27 7 views
2

私は私のシェル内の履歴機能のため、このコードを使用しています: http://cc.byexamples.com/20080613/gnu-readline-how-to-keep-a-history-list-of-entered-command-lines/ が、私はこの使用してGCCをコンパイルするとき、私は例がコンパイル行にこのエラーにGNU readlineの履歴機能

$ 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

あなたはそれをコンパイルするために使用している正確なコマンドを追加することができますか? – cube

答えて

11

を得ましたが

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

-lreadlineを追加することを忘れましたか?

+3

ここにちょっとしたものを追加するには、 '-lreadline'がコマンドラインで必要なソースファイルの後に来なければならないことに注意してください。私はあまりにも多くの時間を苦労して過ごしました。 ;) 理由についてはhttp://gcc.gnu.org/onlinedocs/gcc/Link-Options.htmlを参照してください。 – shanet

+0

Shanet、ありがとう、私はちょうど私が私が私のreadlineをリンクすることができないことを見つけることを認めようとしているよりも多くの時間を費やしています。 「なぜlibreadlineをリンクできないのですか?」という質問を投稿すると、すべての友人にあなたをアップウォークするようになるでしょう。 –

+0

shanet:ありがとう〜! – Kalle

2

これでコンパイル:

gcc -lreadline -lncurses -o simple_rl{,.cpp} 
関連する問題