编译过程中,termcap.h 文件找不到路径
查看是linux 源码下找不到termcap.h文件
安装了所有关于*cap*的源码包也不起作用
今天终于解决了这个问题,搜termcap.h 发现一篇文章,如下
-----------------------------------------------------------------------------------------
安装minicom2.3出现termcap.h错误解决方法
2010-05-06 17:12:55
分享:
step 1: ./configure
result:OK
step 2: make
result: has a error
In file included from port.h:39,
from minicom.c:38:
/usr/include/ncurses/termcap.h:63: error: conflicting types for `tgetstr‘
/usr/include/termcap.h:46: error: previous declaration of `tgetstr‘
/usr/include/ncurses/termcap.h:65: error: conflicting types for `tgetent‘
/usr/include/termcap.h:43: error: previous declaration of `tgetent‘
/usr/include/ncurses/termcap.h:66: error: conflicting types for `tgetflag‘
/usr/include/termcap.h:44: error: previous declaration of `tgetflag‘
/usr/include/ncurses/termcap.h:67: error: conflicting types for `tgetnum‘
/usr/include/termcap.h:45: error: previous declaration of `tgetnum‘
/usr/include/ncurses/termcap.h:68: error: conflicting types for `tputs‘
/usr/include/termcap.h:53: error: previous declaration of `tputs‘
make[2]: *** [minicom.o] Error 1
make[2]: Leaving directory `/mnt/minicom-2.3/src‘
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/minicom-2.3‘
resolve:
关掉/usr/include/ncurses/termcap.h 第3,65,66,67,68行中冲突类型的定义,然后再编译之,ok
62 #if !defined(NCURSES_TERM_H_incl)
63 extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);
64 extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);
65 extern NCURSES_EXPORT(int) tgetent (char *, const char *);
66 extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);
67 extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);
68 extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));
69 #endif
改为//===================================
62 #if !defined(NCURSES_TERM_H_incl)
63 #extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);
64 #extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);
65 #extern NCURSES_EXPORT(int) tgetent (char *, const char *);
66 #extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);
67 #extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);
68 #extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));
69 #endif
//===================================
step3:make install
result :OK
这样,就得到想要的minicom了!
------------------------------------------------------------------------------------------
这篇文章给了我提示,/usr/include/ncurses/termcap.h 在源码下找这个文件, 发现不存在ncurses 这个目录
那么,是不是缺少ncurses 库呢,安装试一下
安装完成后编译通过!!!!
licli.a终于生成
回头看这个库是干啥的?
ncurses简介及其使用方法
NCURSES不仅仅只是封装了底层的终端功能,而且提供了一个相当稳固的工作框架(Framework)用 以产生漂亮的界面。它包含了一些创建窗口的函数。而它的姊妹库 Menu、Panel和Form则是对CURSES基础库的扩展。这些库一般都随同CURSES一起发行。我们可以建立一个同时包含多窗口 (multiple windows)、菜单(menus)、面板(panels)和表单(forms)的应用程序。窗口可以被独立管理,例如让它卷动 (scrollability)或者隐藏。
菜单(Menus)可以让用户建立命令选项,从而方便执行命令。而窗体(Forms)允许用户 建立一些简单的数据输入和显示的窗口。面板(Panels)是NCURSES窗口管理功能的扩展,可以用它覆盖或堆积窗口。
你现在应该知道NCURSES可以做什么了。在你使用之前必须先下载它。你在安装操作系统时(Linux)应 该已经附带了。万一如果你的操作系统还没有安装NCURSES库,可以通过以下的途径可以下载得到:
下载并编译安装文件包:
你可以通过ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz免 费下载NCURSES。
ftp://ftp.gnu.org/pub/gnu/ncurses
也可以通过GNU的FTP目录:http://www.gnu.org/order/ftp.html 找到提供免费下载NCURSES文件包的站点。最新发布的稳定版本为:5.2 20001021.(译者翻译时已经有5.4版本的NCURSES下载了)
包裹文件中的README和INSTALL文件是安装 NCURSES库的最主要资料。
通常是这样安装NCURSES的:
tar zxvf ncurses<version>.tar.gz #解压缩并且释放 文件包
cd ncurses<version> #进入解压缩的目录(注意版本)
./configure #按照你的系统环境制作安装配置文件
make #编译源代码并且编译NCURSES库
su root #切换到root用户环境
make install #安装编译好的NCURSES库
./configure
sudo make && make install
使用RPM安装文件:
可以在http://rpmfind.net 找到NCURSES的RPM格式安装包。可以在root模式下使用以下的命令安装:(以5.2版本为例)
rpm -vih 下载的RPM文件
===================================
如何解决Install ncurses(ncurses-devel) and try again
打开一个终端输入下面这条语句按回车进行安装即可。
apt-get install libncurses5-dev