参考资料:

  1. http://www.linuxdiyf.com/viewarticle.php?id=81796

需要下载的文件有两个:zhcon-0.2.5.tar.gz和zhcon-0.2.5-to-0.2.6.diff.gz。

下载地址:http://sourceforge.net/project/showfiles.php?group_id=27400
windows下载(先用WinRAR解压得到两个文件):http://www.namipan.com/d/zhcon0. ... 49149f7f1932c784c00
将两个文件下载到/root目录下(也可以将文件下载到喜欢的别的目录)。

1.解压并解包zhcon-0.2.5.tar.gz文件:

[root@dhwch]# tar zxvf zhcon-0.2.5.tar.gz

解压之后在/root目录下得到一个zhcon-0.2.5目录。
[root@dhwch]#cd zhcon-0.2.5 
[root@zhcon-0.2.5]#zcat ../zhcon-0.2.5-to-0.2.6.diff.gz | patch -p1
或者:
将zhcon-0.2.5-to-0.2.6.diff.gz解压:
[root@dhwch]# gzip -d zhcon-0.2.5-to-0.2.6.diff.gz 
解压后得到zhcon-0.2.5-to-0.2.6.diff补丁文件,用下面的命令将此文件打补丁到zhcon-0.2.5的源代码中: 
[root@dhwch]# patch -p0 < zhcon-0.2.5-to-0.2.6.diff

把0.2.5版本的zhcon升级到0.2.6版本,接下来

[root@dhwch zhcon-0.2.5]# ./configure

[root@dhwch zhcon-0.2.5]# make

[root@dhwch zhcon-0.2.5]# make install

这样,中文控制台终端zhcon就安装好了。要使用zhcon,只需要在控制台下键入命令:

[root@dhwch zhcon-0.2.5]# zhcon

即可。

  在这个文档里有几点没有说清楚:

    1). 在使用make编译源代码的时候出现了很多的错误,主要原因有:一些源文件没有引入必要的头文件、缺少常量的宏定义、以及在Makefile文件中的编译依赖中缺少必要的链接包,于是又参考了下面两份资料:

http://blog.sina.com.cn/s/blog_637fe9d80101561k.html

Linux编程 报错 找不到 term.h和curses.h

(2012-07-15 15:35:40)

标签:

杂谈

分类: Linux
源程序badterm.c如下:

#include <stdio.h>
#include <term.h>
#include <curses.h>
#include <stdlib.h>
 
int main()
{
    setupterm("unlisted", fileno(stdout), (int *)0);
    printf("Done.\n");
    exit(0);
}
 
执行编译gcc -o badterm badterm.c -lcurses后报错情报如下:
term.h: 没有那个文件或目录
curses.h: 没有那个文件或目录
很明显,程序找不到term.h和curses.h,那么为了安装这两个头文件,就在shell中执行sudo apt-get install libncurses5-dev,之后再执行上述编译命令即可通过。ENJOY!~
 
http://www.linuxidc.com/Linux/2010-05/26183.htm
 

fblinear4.cpp:75: 错误:‘memset’在此作用域中尚未声明

如果SUSE 下安装zhcon出问题,这里是第一个报错的地方。我也在网上搜了一下,有人说是gcc4.3开始头文件的变更,让我想起去看看这个版本的时 间,2006-05-04,即便是那个2.6的patch也已经过时了。但毕竟用zhcon的人已经越来越少了,所以我只要把思路给出来,也不去做 patch了。
在zhcon的make过程中,有很多次报错,说缺少memset,memcpy等函数的定义,是缺少#include <string.h>;有几次缺少abs,atoi,free等的定义,是缺少#include <stdlib.h>;还有报fd_set结构的定义,是缺少#include <sys/select.h>;另外,缺少几个常量定义,我从以前版本的内核头文件中找到,然后写入了src/lrmi.c中(好像就是这个 文件缺),共用到如下几个量:
#define VIF_MASK        0x00080000      /* virtual interrupt flag */
#define IF_MASK         0x00000200
#define IOPL_MASK       0x00003000
#define TF_MASK         0x00000100
如果有人 遇到同样的问题,希望对你有帮助。

所有增加的内容,写入到 config.h 中 :
include <memory.h>
#include <stdlib.h>
#include <sys/select.h>

#define VIF_MASK        0x00080000      /* virtual interrupt flag */
#define IF_MASK         0x00000200
#define IOPL_MASK       0x00003000
#define TF_MASK         0x00000100
另外这些以后还会有一个文件报错。到时候添加一个 #include <stdlib.h> 即可。

环境:kernel 2.6.27
gcc-4.3.2

这里讲的将这些缺少的东西写在 configure文件中,我是在每个缺少的文件中都添加上了。

在参考上面的资料后出现了 undefined reference to `tgetent' 的错误,参考http://blog.csdn.net/azhang00000/article/details/2936551

LINUX readline 库的使用,,

编译代码时必须链接libreadline 与libtermcap

基只有前者,,将会有如下的链接失败

/usr/lib/libreadline.so: undefined reference to `tgetnum'
: /usr/lib/libreadline.so: undefined reference to `tgoto'
: /usr/lib/libreadline.so: undefined reference to `tgetflag'
: /usr/lib/libreadline.so: undefined reference to `BC'
: /usr/lib/libreadline.so: undefined reference to `tputs'
: /usr/lib/libreadline.so: undefined reference to `PC'
: /usr/lib/libreadline.so: undefined reference to `tgetent'
: /usr/lib/libreadline.so: undefined reference to `UP'
: /usr/lib/libreadline.so: undefined reference to `tgetstr'

Makeifle (eg):

read:   read.o
        gcc -o read read.o -I/usr/include -lreadline -ltermcap

read.o: read.c
        gcc -c read.c -lreadline

从上面的文档中可以知道这个错误是Makefile文件中没有引入 -ltermcap包导致

参考了上面的文档,然后枯燥的添了一下午的包和头文件终于编译通过,出现了等待已久的运行界面:

虽然运行起来了,但是使用相当不方便,而且漏洞百出。后来我在百度知道中得知该软件已不会再维护了。想着这东西也确实不是使用中文的利器。找到好的后果断换掉!

zhcon安装过程记录的更多相关文章

  1. Ubuntu14.04 Tomcat 安装过程记录

    Ubuntu14.04 Tomcat 安装过程记录 检查java的版本 zhousp@ubuntu:~$ sudo java -version [sudo] password for zhousp: ...

  2. openvswitch 2.7 安装过程记录 总结

    envswitch 2.7 安装过程记录 总结 安装思路是参考文档: http://docs.openvswitch.org/en/latest/intro/install/general/#obta ...

  3. Hadoop集群中pig工具的安装过程记录

    在Hadoop环境中安装了pig工具,安装过程中碰到了一些问题,在此做一下记录:   主要安装流程参考:http://www.cnblogs.com/yanghuahui/p/3768270.html ...

  4. VMware vSphere HyperVisor安装过程记录

      作者:sdjnzqr 出处:http://www.cnblogs.com/sdjnzqr/ 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须在文章中给出原文 ...

  5. Red5 1.0.5安装过程记录

    Red5从旧的服务器切换到了github上后,截至20150702仍未更新文档.为了搭建Red5开发环境,我像无头苍蝇一样乱转了很多博客和StackOverflow.藉此记录这次安装过程,希望能够帮助 ...

  6. VMware vSphere虚拟化-VMware ESXi 5.5组件安装过程记录

    几种主要的虚拟化 ESXi是VMware公司研发的虚拟机服务器,ESXi已经实现了与Virtual Appliance Marketplace的直接整合,使用户能够即刻下载并运行虚拟设备.这为 即插即 ...

  7. Fedora 28 UEFI模式安装过程记录

    这次的折腾是个意外.不过还是要记录一下. 多次做启动盘,把U盘做坏了.将U盘用量产工具修复以后就能做启动盘了.从官网下了Fedora 28的镜像(与CentOS同属RedHat系,尽量与鸟哥一致),用 ...

  8. linux centos 宝塔主机控制面板安装和安全狗安装过程记录

    linux 宝塔控制面板 安装过程yum install -y wget && wget -O install.sh http://103.224.251.79:5880/instal ...

  9. Linux安装过程记录信息

    全新的linux安装完成后,会在root目录下有一下三个文件,记录了Linux的安装细节 anaconda-ks.cfg 以Kickstart配置文件的格式记录安装过程中设置的选项信息 install ...

随机推荐

  1. JavaScript或jQuery模拟点击超链接和按钮

    有时候我们需要页面自动点击超链接或者按钮,可以用js或者jQuery利用程序去点击,方法很简单,按钮或超链接代码如下: <a href="url" target=" ...

  2. Linux系统排查3——I/O篇

    当磁盘无法写入的时候,一般有以下可能: 文件系统只读 磁盘已满 I节点使用完 一. 遇到只读的文件系统 文件系统自动设置成只读可能是系统自我保护的一种机制,因此需要实现弄清究竟是什么原因造成了文件系统 ...

  3. BestCoder9 1003 Revenge of kNN(hdu 4995) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4995 题目意思:在一个一维坐标轴上,给出位置 xi 和值 vi,对于 M 次询问,每次询问给出inde ...

  4. java操作AJAX

    1,get方式的AJAX function sendAjaxReq() { //1,创建ajax引擎 XMLHttpRequest对象 var req = new XMLHttpRequest() | ...

  5. Animation & Property Animation 使用

    本篇主要讲Animation 和 Property Animation的使用,最后会讲QQ管家桌面火箭作为例子: 在Android中开发动效有两套框架可以使用,分别为 Animation 和 Prop ...

  6. Quartus signal tapii 的使用

    此功能原来已经试验过,没有笔记.这次复习巩固下. 使用PLL 的程序. 1.新建signaltap ii 文件 注意以下几个地方,会用到 添加采样时钟 . 添加采样信号: 完成之后,编译下载 运行 两 ...

  7. 理解C#中的闭包

    闭包的概念 内层的函数可以引用包含在它外层的函数的变量,即使外层函数的执行已经终止.但该变量提供的值并非变量创建时的值,而是在父函数范围内的最终值. 闭包的优点 使用闭包,我们可以轻松的访问外层函数定 ...

  8. Java开发中程序和代码性能优化

    现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升, 但是我觉得在开发中注意这些,更多的是可以保持一种性能优先的意识,对一些敲代码时间比 ...

  9. Android悬浮窗注意事项

    一 动画无法运行 有时候,我们对添加的悬浮窗口,做动画的时候,始终无法运行. 那么,这个时候,我们可以对要做动画的View,再添加一个parent,即容器.将要做动画的View放入容器中. 二 悬浮窗 ...

  10. Start GitHub

    google 的各种被墙大家都懂的,所以转向GitHub 的怀抱. 以前其实也关注过,这回是下决心好好试用了. Fork repositories Forking creates a new, uni ...