ncurses-5.9在Ubuntu16上的安装

首先我们来了解一下什么是ncurses,ncurses 是提供字符终端处理库,包括面板和菜单。诸如make menuconfig Linux内核、busybox等需要使用图形界面操作安装软件的支持。ok,下面进入安装。

#tar xvf ncurses.tar.gz -C /work/*指定解压目录,我这里是根目录下的work文件夹*/

#cd /work/ncurses-5.9

 /work/ncurses-5.9#./configure                                         /*.configure生成配置文件,使用./configure --hlelp查看更多帮助信息*/

然后make,如果出现如下的错误信息

ncurses-5.9在Ubuntu16上的安装_第1张图片

观察报错,发现错误是在../include/curses.h的1594行

接下来则

 /work/ncurses-5.9#vim include/curses.h +1594 如下图

ncurses-5.9在Ubuntu16上的安装_第2张图片

请注意1584行的/*generated*/这个注释,下面给大家补充一点C语言的编译与链接的知识(参考《程序员的自我修养——链接、装载与库》)

例如在我们的Linux下使用gcc编译C语言时,编译可分为四个步骤预处理、编译、汇编、和链接

预编译过程中主要处理那些源代码文件中的以#开始的预编译指令,比如#include,#define等

1.将所有的#define删除,并且展开所有宏定义

2.处理所有条件预编译指令,比如#if、#ifdef、#elif、#else、#endif

3.处理#include预编译指令,将包含的文件插入到该预编译指令的位置。注意,这个过程是递归进行的,也就是说被包含的文件可能还含有其他文件

4.删除所有的注释和"//"和"/**/"  

5.添加行号和文件名标识,比如#2 "hello.c"2,以便于编译时编译器产生调试用的行号信息及用于编译时产生编译错误或警告是能够显示行号。

6.保留所有的#pragma编译器指令,因为编译器必须使用它们。

好了,写到这里相信大家都应该明白了,就是当编译器删除/*generated*/这个注释时直接也导致了下面那个宏的出错。

解决方法,删除/*generated*/这个注释,保存退出。

#make && make install 完成安装

你可能感兴趣的:(ncurses-5.9在Ubuntu16上的安装)