readline( )库的安装和使用,实现命令补全
之前自己實現一個簡單shell 的時候,想要實現命令行自動補全功能,于是上網查了查資料,發現多數都提到了
readline( ) 庫,經過仔了解后,發現其實bash 的底層實現也是調用了這個庫,我的系統是 fedora 21 并沒有安裝這個庫,且man page 中也沒有相關信息,(Q:bash 調用的誰呢?)不管那末多,先無腦安轉吧,邊安轉邊看情況吧(把我害慘了。。。。。。)
? ? ? ? ? ? ? 首先平直覺 yum install readline?
? ? ? ? ? ? ? 但是得到了這樣的信息:
? ? ? ? ? ? ? ? ? ??
提示我readline軟件包已經安裝。。。。。。。但是/usr/include下根本沒有<readline.h>這個庫好嗎?于是又去查了查資料,
發現需要安裝libreadline 但是由于版本問題又折騰了半天。
redhat 系列下這個軟件包叫 ?readline-devel ? ? ubuntu 下叫readline-dev ? ?細分又分為libreadline5-dev ? 和 libreadline6-dev
? ? ? ? ? ? ? ? ? ? ??
于是安裝yum install readline-devel ?成功
在/usr/include 下已經有了<readline>
? ? ? ? ? ? ? ? ? ? ? ?
開始引用頭文件
如圖已經引用OK ,開始編譯吧,迫不及待了。。。。。。。。。。。
按這個庫已經花費一天半時間
這是什么鬼,是不是Makefile 有問題? 趕緊上Makefile\
我已經鏈接了readline 這樣?????????????????????????????????
? 于是有開始查資料發現了這個
?ldconfig -p | grep readline
這是一個庫文件所以需要查看一下是否有這個庫,如果是一個動態庫那么就需要在鏈接的時候將這個動態庫加入。
發現這就是一個動態庫(不幸被我猜中)
然后只要加上這個庫OK?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ?然后make OK !
? ? ? ? ? ? ? ? ? ? ? ? ? ?我的my_shell 已經有自動補全功能了。
來源:http://blog.csdn.net/zmrlinux/article/details/47052797
總結
以上是生活随笔為你收集整理的readline( )库的安装和使用,实现命令补全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ngx_lua模块中的共享内存字典项AP
- 下一篇: 网站静态化的实现以及纯伪静态优缺点