过去的4年(或者六七年)我都做了什么?我现在能做什么?我以后又会做什么?是要对自己负责的时候了,如果曾经努力,那么请一定相信自己;如果曾经虚度,那么,就不能只恨自己太平凡。
同学在搞linux的移植,激励我也看了下移植的东东。
先试验下make menuconfig
root@zhangbin-desktop-ubuntu:/usr/src/linux-header s-2.6.32-27# make menuconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
HOSTCC scripts/basic/hash
HOSTCC scripts/kconfig/conf.o
scripts/kconfig/conf.c: In function 'conf_askvalue':
scripts/kconfig/conf.c:105: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result
scripts/kconfig/conf.c: In function 'conf_choice':
scripts/kconfig/conf.c:307: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result
HOSTCC scripts/kconfig/kxgettext.o
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1
make: *** [menuconfig] 错误 2
root@zhangbin-desktop-ubuntu:/usr/src/linux-header s-2.6.32-27# apt-get install libncurses*
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
注意,根据正则表达式"libncurses*"选中了 libncurses5
注意,根据正则表达式"libncurses*"选中了 libncurses-ruby1.8
注意,根据正则表达式"libncurses*"选中了 libncurses-dev
注意,选取 libncurses5-dev 而非 libncurses-dev
注意,根据正则表达式"libncurses*"选中了 libncurses-gst
注意,根据正则表达式"libncurses*"选中了 libncursesw5-dbg
注意,根据正则表达式"libncurses*"选中了 libncursesw5-dev
注意,根据正则表达式"libncurses*"选中了 libncurses-ruby1.9.1
注意,根据正则表达式"libncurses*"选中了 libncurses-ruby
注意,根据正则表达式"libncurses*"选中了 libncurses5-dbg
注意,根据正则表达式"libncurses*"选中了 libncurses5-dev
注意,根据正则表达式"libncurses*"选中了 libncursesw5
将会安装下列额外的软件包:
gnu-smalltalk gnu-smalltalk-common libgst7 libncurses-gst libncurses-ruby
libncurses-ruby1.8 libncurses-ruby1.9.1 libncurses5-dbg libncurses5-dev
libncursesw5-dbg libncursesw5-dev libruby1.8 libruby1.9.1 libsigsegv0
ruby1.8 ruby1.9.1
建议安装的软件包:
gnu-smalltalk-doc ruby1.8-examples rdoc1.8 ri1.8 ruby1.9.1-examples
rdoc1.9.1 ri1.9.1 rubygems1.9.1
下列【新】软件包将被安装:
gnu-smalltalk gnu-smalltalk-common libgst7 libncurses-gst libncurses-ruby
libncurses-ruby1.8 libncurses-ruby1.9.1 libncurses5-dbg libncurses5-dev
libncursesw5-dbg libncursesw5-dev libruby1.8 libruby1.9.1 libsigsegv0
ruby1.8 ruby1.9.1
升级了 0 个软件包,新安装了 16 个软件包,要卸载 0 个软件包,有 1 个软件包未被升级。
需要下载 13.0MB 的软件包。
解压缩后会消耗掉 47.6MB 的额外空间。
您希望继续执行吗?[Y/n]n
中止执行。
网上说只需要安装这个包就足够了:
root@zhangbin-desktop-ubuntu:/usr/src/linux-header s-2.6.32-27# apt-get install libncurses5-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列【新】软件包将被安装: libncurses5-dev 升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 1 个软件包未被升级。
需要下载 1,564kB 的软件包。
解压缩后会消耗掉 6,627kB 的额外空间。
获取:1 http://Ubuntu.cn99.com/ubuntu/ lucid/main libncurses5-dev 5.7+20090803-2ubuntu3 [1,564kB]
下载 1,564kB,耗时 16秒 (94.7kB/s)
选中了曾被取消选择的软件包 libncurses5-dev。
(正在读取数据库 ... 系统当前总共安装有 320352 个文件和目录。)
正在解压缩 libncurses5-dev (从 .../libncurses5-dev_5.7+20090803-2ubuntu3_i386.deb ) ...
正在处理用于 man-db 的触发器...
正在设置 libncurses5-dev (5.7+20090803-2ubuntu3) ...
root@zhangbin-desktop-ubuntu:/usr/src/linux-header s-2.6.32-27# make menuconfig
HOSTCC scripts/kconfig/conf.o
scripts/kconfig/conf.c: In function 'conf_askvalue':
scripts/kconfig/conf.c:105: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result
scripts/kconfig/conf.c: In function 'conf_choice':
scripts/kconfig/conf.c:307: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result
HOSTCC scripts/kconfig/kxgettext.o
HOSTCC scripts/kconfig/lxdialog/checklist.o
HOSTCC scripts/kconfig/lxdialog/inputbox.o
HOSTCC scripts/kconfig/lxdialog/menubox.o
HOSTCC scripts/kconfig/lxdialog/textbox.o
HOSTCC scripts/kconfig/lxdialog/util.o
HOSTCC scripts/kconfig/lxdialog/yesno.o
HOSTCC scripts/kconfig/mconf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/mconf
scripts/kconfig/mconf arch/x86/Kconfig
#
# using defaults found in /boot/config-2.6.32-27-generic
#
然后就开始了配置过程:
Your kernel configuration changes were NOT saved. 最后我什么都没改动。
============================
那什么是ncurses库呢?
转载一篇文章 http://blog.csdn.net/robertaqi/archive/2010/10/14/ 5941943.aspx
5月16日
第一章 NCURSES库简介
在使用电传终端作为计算机输出设备的那个年代,电传终端是和计算机分开放置的,并通过串行电缆连接。终端的配置通过发送一系列字节完成。所有的终端控制操 作:改变光标在屏幕上的位置,清除屏幕某一区域的内容,屏幕滚动,切换显示模式,给文字添加下划线,改变字符的外观、颜色、亮度等等,也是通过这样一系列 字节实现的。由于这些连续的控制字节以一个转义字符"0x1B"(即ESC键)作为起始字节,所以这种控制序列叫做转义序列。即使在当今,我们也可以向终 端仿真程序发送转义序列,得到和当年电传打字终端相同的显示效果。
假设你想在终端(或终端仿真窗口)输出一段彩色的文字,可以将以下这段转义序列输入到你的字符控制台(或控制台窗口):
echo "^[[0;31;40mIn Color"
在 这里 "^[" 就是所谓的转义字符。(注意:"^[" 是一个字符,不是依次键入"^"和"["字符。要输出"^[",必须按下Ctrl-V再按下ESC键)执行以上的命令,就应该可以看见"In Color"变为红色了(译者注:试更改转义字符各分号间的参数,看看会有什么结果)。以后输出的文本信息都是这样的效果。 如果想返回原来的颜色设置可以使用以下的命令:
echo "^[[0;37;40m"
现在体会到这些神奇字符(转移序列)的作用了吗?然而这些奇怪的字符是不是很难理解呢?并且有时相同的转义序列在不同的终端上会有不同的显示结果。因此,UNIX的设计者发明了一种叫做 termcap的机制。
termcap 是一个列出特定终端的所有功能的文本文件,并且给出了实现对应功能的转义序列。然而在这种机制发明后的几年中,逐渐被terminfo机制取代。程序员使 用terminfo时不用花过多的时间查阅termcap。只需让程序查询terminfo的数据库就可得到控制字符,并将其发送到终端或终端仿真程序。
1.1 NCURSES是什么?
你可能会疑惑,引入的这些技术术语是什么。假设在使用termcap或者terminfo的情况下,每 个应用程序都在访问terminfo数据库并且做一些必要的处理(比如发送控制字符等等)。不久这些操作的复杂度将会变得难以控制。于是,curses诞 生了。curses 的命名是来自一个叫做 "cursor optimization"(光标最优化)的双关语(译者注:curses本身有诅咒的意思)。curses构成了一个工作在底层终端代码之上的封装,并 向用户提供了一个灵活高效的API(Application Programming Interface 应用程序接口)。它提供了移动光标,建立窗口,产生颜色,处理鼠标操作等功能。使程序员编写应用程序不需要关心那些底层的终端操作。
那 么ncurses又是什么?ncurses是最早的System V Release 4.0 (SVr4)中 CURSES的一个克隆。这是一个可自由配置的库,完全兼容旧版本的curses。简而言之,它是一个管理应用程序在字符终端显示的函数库。当后面提到 curses的时候,同时也可以和NCURSES互换。
关于ncurses详细的更新历史可以查阅ncurses源代码分发包中的NEWS文件。Thomas Dickey是目前的维护人员。你可以通过bug-ncurses@gnu.org联系维护人员
1.2 我们可以用NCURSES做什么?
ncurses 不仅仅封装了底层终端功能,而且提供了一个相当稳固的工作框架(Framework)可以在字符模式下产生美观的界面。它提供了一些创建窗口的函数。而它 的姊妹库 Menu、Panel和Form则对curses基础库及进行了扩展。这些扩展库通常都随同curses一起发行。我们可以建立一个同时包含多个窗口 (multiple windows)、菜单(menus)、面板(panels)和表单(forms)的应用程序。窗口可以被独立管理,例如让它滚动或者隐藏。
菜单(Menus)可以让用户建立命令选项,方便用户执行命令。而表单(Forms)允许用户建立一些简单的数据输入和输出的窗口。面板(Panels)是ncurses窗口管理功能的扩展,可以用它覆盖或堆积窗口。
以上这些就是ncurses的简单介绍。在以后的章节里,我们将详细的介绍这些库。
1.3在哪能得到它
现在你知道你可以用ncurses做什么了吧。使用ncurses之前你必须先安装它,通常在安装操作系统(Unix/Linux)时它已被安装。如果你的操作系统里没有ncurses,你可以通过以下的途径安装:
编译ncurses包:
ncurses 可以从ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz获得。也可以通过GNU的FTP目录: http://www.gnu.org/order/ftp.html 找到提供免费下载ncurses的站点。最新发布的稳定版本为:5.2 20001021.(译者翻译时已经有5.4版本的ncurses下载了)
tar文件包中的README和INSTALL文件是安装ncurses库的主要资料。通常是按以下方法安装ncurses的:
tar zxvf ncurses.tar.gz # 解压缩并且释放文件包
cd ncurses # 进入解压缩的目录(注意版本)
./configure # 按照你的系统环境制作安装配置文件
make # 编译源代码并且编译ncurses库
su root # 获得root权限
make install # 安装编译好的NCURSES库
使用RPM安装文件:
可以在http://rpmfind.net 找到ncurses的RPM格式安装包。可以在root模式下使用以下的命令安装:
rpm i
1.4 本文档的写作意图和涵盖范围
这部文档的写作目的是要成为一份ncurses以及子函数库的综合编程指南。我们将从一个简单的"Hello World"程序开始,循序渐进的学习掌握ncurses各方面更复杂、高级的内容。因此假定读者在此之前没有使用ncurses库的经验。
1.5 关于文档中出现的程序
这 份文档中用到的所有程序已经被打包并压缩成一个tar.gz文件。可以在http://www.linuxdoc.org/HOWTO/NCURSES- Programming-HOWTO/ncurses_programs.tar.gz 下载到。以下是这个压缩包解压缩后的目录结构:
ncurses
|
|----> JustForFun -- just for fun 部分的程序
|----> basics -- 一些基础部分的程序
|----> demo -- make 之后的程序
| |
| |----> exe -- 一些已编译的可执行示例程序
|----> forms -- 和form 库相关的程序
|----> menus -- 和menus 库相关的程序
|----> panels -- 和 panels 库相关的程序
|----> Makefile -- 一级目录的下的 Makefile
|----> README -- 一级目录下的 README 文件包含程序说明。
|----> COPYING -- 程序版权信息文档。
这些目录下包扩以下的文件:
JustForFun
|
|----> hanoi.c -- 汉诺塔示例
|----> life.c -- 生命游戏
|----> magic.c -- 数字幻方
|----> queens.c -- 皇后问题
|----> shuffle.c -- 智力拼图
|----> tt.c -- 一个非常简单的打字练习程序
basics
|
|----> acs_vars.c -- 可选字符(ACS)变量示例
|----> hello_world.c -- 简单的"Hello, World!"程序
|----> init_func_example.c -- 初始化函数示例
|----> key_code.c -- 显示键盘字符代码的程序
|----> mouse_menu.c -- 一个可以使用鼠标访问的菜单
|----> other_border.c -- 展示与box()函数不同的显示边框的其它函数
|----> printw_example.c -- 一个非常简单的使用printw()函数的例子
|----> scanw_example.c -- 一个非常简单的使用getstr()函数的例子
|----> simple_attr.c -- 一个在屏幕上打印C源程序注释的例子
|----> simple_color.c -- 一个简单的演示颜色的例子
|----> simple_key.c -- 一个可以用方向键访问的菜单的例子
|----> temp_leave.c -- 一个演示临时离开CURSES模式的例子
|----> win_border.c -- 展示窗口和边框的例子
|----> with_chgat.c -- chgat()函数使用的例子
forms
|
|----> form_attrib.c -- 展示field属性的用法
|----> form_options.c -- 展示field选项的用法
|----> form_simple.c -- 一个简单的表单例子
|----> form_win.c -- 一个简单的窗口和表单联合使用的例子
menus
|
|----> menu_attrib.c -- 展示菜单属性的用法
|----> menu_item_data.c -- 展示 item_name() 等等函数的用法
|----> menu_multi_column.c -- 建立多列菜单
|----> menu_scroll.c -- 展示菜单滚动的示例
|----> menu_simple.c -- 一个用方向键控制菜单的例子
|----> menu_toggle.c -- 建立多值菜单和解释 REQ_TOGGLE_ITEM
|----> menu_userptr.c -- 用户指针的用法
|----> menu_win.c -- 菜单和窗口结合的演示例子
panels
|
|----> panel_browse.c -- 通过 tab 浏览展示用户指针的用法
|----> panel_hide.c -- 隐藏和取消隐藏面板的例子
|----> panel_resize.c -- 移动和改变面板大小的例子
|----> panel_simple.c -- 一个简单的面板使用例子
perl
|---->01-10.pl --前10个例子的perl语言版
Makefile包含在一级主目录里。它将会把所有的程序编译成可执行的文件。并把这些文件存在demo/exec目录下面。你也可以选择将其编译到别的目录下。每个目录下都有一个README文件详细描述了每个目录下的C源程序的内容。
对于每一个示例,我都给出了这些程序调用NCURSES目录下相关文件的路径名。
如果你希望在线阅读这些程序中某个单独的程序,可以通过浏览器访问一下网址:http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/nc urses_programs/
所有以上发布的程序都遵照和NCURSES相同的许可协议(MIT-Style), 这个协议使你可以做除了得到他们以外更多的事情。你可以更自由的使用它们。
1.6 关于此文档的其他文件发布格式
这份HOWTO文档还有很多其它的文件发布格式,可以在tldp.org 下载到。以下是关于这份文档其它格式的下载链接:
1.6.1可以从从tldp.org得到的格式:
Acrobat PDF 格式
PostScript格式
多页的HTML文档
单页的HTML文档
1.6.2从源代码编译
如果以上链接出现问题,或者你想自己使用sgml进行实验,请遵循以下步骤:
1、从以下两个地址下载源代码包和tar.gz的示例程序压缩包:
http://cvsview.tldp.org/index.cgi/ldp/howto/docboo k/ncurses-howto/NCURSES-Programming-HOWTO.sgml
http://cvsview.tldp.org/index.cgi/LDP/howto/docboo k/NCURSESHOWTO/ncurses_programs.tar.gz
2、解压缩示例程序包:
tar zxvf ncurses_programs.tar.gz
3、用jade程序建立各种各式的文档,如果你想创建多页的HTML文档:
jade -t sgml -i html -d 风格样式表文件 NCURSES-Programming-HOWTO.sgml
如果需要PDF格式,首先要建立单页的HTML文档:
jade -t sgml -i html -d风格样式表文件 -V nochunks NCURSES-Programming-HOWTO.sgml > NCURSES-ONE-BIG-FILE.html
然后利用这份文档和htmldoc工具创建PDF文档:
htmldoc --size universal -t pdf --firstpage p1 -f 输出的.pdf文件全名 NCURSES-ONE-BIG-FILE.html
也可以用来生成PS文档:
htmldoc --size universal -t ps --firstpage p1 -f 输出的.ps文件全名NCURSES-ONE-BIG-FILE.html
详细信息请访问LDP Author Guide (LDP 作者指南)可以获得更多信息,如果都失败了,请和作者ppadala@gmail.com联系,也可以联系译者byronm@sina.com
1.7 原文贡献者
感谢Sharath(sharath_1@usa.net)和Emre Akbas编写了其中的一些段落。简介部分最初由Sharath写成。当重新写这部分的时候饮用了他最初完成的部分。Emre帮忙编写了printw()函数和scanw()函数部分。
Perl语言版示例程序的提供者Anuradha Ratnaweera(aratnaweera@virtusa.com)。
然 后是Ravi Parimi(parimi@ece.arizona.edu)。他是这个项目最初的实现者。在撰写这份文档时,他对这份文档提供了很多的意见。并且在文 章撰写完毕后耐心的校对了整份文档。他还在Linux和Solaris平台上检查过文中使用的每一个程序。你可以从他的注记中发现你的问题。
1.8远景规划
下面是正在进行或者将要进行的项目。如果你有新的项目或者想加入某个项目。请和Padala联系。
给最后讲述form库的一章增加更多的示例程序。(这个项目Padala正在进行)
准备一个演示程序展示文档中所有的示例。同时允许用户通过程序描述展示这些示例。
让用户亲自编译并且察看这些程序。一个有对话框的用户界面更好。(这个项目N.N.Ashok正在进行)
加入Debug信息,使用 _trace,_tarcemouse 。
通过NCURSES库中的函数访问termcap或tremios
使用户可以同时在两个终端上工作。在"其它特色"章节(Miscellaneous features)中增加一些东西。
1.9 版权声明
Copyright ?2001 by Pradeep Padala.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, distribute with modifications, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
发表评论
-
(转)C#数据库连接字符串
2012-07-06 09:52 700本文介绍C#数据库 ... -
C#开发系统服务时用的定时器组件
2012-07-03 13:44 1102写服务时,都需要 ... -
关于Flex4工程和 Alternativa3D 7.5.1的疑问
2012-07-02 13:08 579原文:http://bbs.9ria.com/thread ... -
将flex组件添加到papervision3d
2012-07-02 13:08 400上一篇文章介绍了如何将papervision3d作为组件添 ... -
Flex 4架构的组件开发
2012-07-02 13:08 574Flex 4架构的组件开发 作者:Michael Labr ... -
Flex style - CSS 的使用
2012-07-02 13:08 529Dan Orlando, 软件架 ... -
flex 绑定资源
2012-07-02 13:08 648Adobe Flex supports several i ... -
[转]Flex中[Bindable]的用法
2012-07-01 10:39 752什么是元数据(metadata):[Bindable]大 ... -
flex3:drag-drop全攻略(二)
2012-07-01 10:38 717这里写四个实例:1,List->List 2, ... -
flex4+servlet 实现文件上传功能
2012-07-01 10:38 596最近老是被问到flex的上传问题怎么解决,今天就贴出web ... -
flex图表
2012-07-01 10:38 664flex 可视化组件中 ... -
Flex 文件上传导入组件
2012-06-30 17:03 664Flex 文件上传导入组件 2010年09月13日 上文 ... -
Java Server Push To Flex (ServerPush)
2012-06-30 17:02 727Java Server Push To Flex (Serve ... -
Flex通过javascript读写cookie
2012-06-30 17:02 682Flex通过javascript读写cookie 2010年 ... -
全面认识Flex弹出窗口用法
2012-06-30 17:02 568全面认识Flex弹出窗口用 ...
相关推荐
*** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurses (ncurses-devel) and try again. *** make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1 make: *** [menuconfig] ...
*** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurses (ncurses-devel) and try again. *** make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1 make: *** [menuconfig] 错误2 ...
自己整理的openwrt编译make menuconfig配置 使用说明: make menuconfig直接按照表格一选择即可,选项按颜色设定 白色字体项可以不选,为附加功能,按需选择 黑色字体项在配置里部分项默认选中,带标注的按需...
linux内核配置make-menuconfig菜单详解.doc
把buildroot里的make menuconfig那部分ncurses抠出来,自己 使用make menuconfig配置自己的工程,可以用来玩玩
>> Unable to find the Ncurses libraries. >> >> You must have Ncurses installed in order >> to use 'make menuconfig' 在shell环境下输入:sudo apt-get install libncurses-dev安装缺失的ncurses库。 ...
在linux系统上编译各种资源时均需要进行配置,而对make menuconfig的具体过程了解清楚有助于知识系统的学习
2.6内核编译配置选项简介--介绍make_menuconfig中的每个选项含义.
linux内核配置makemenuconfig菜单详解.pdf
Openwrt学习笔记-通用固件-make-menuconfig配置,Openwrt学习笔记-通用固件
linux内核配置make_menuconfig菜单详解.docx
uclinux2.4移植到s3c44b0上时make menuconfig的配置选项,此选项在第一次make menuconfig时生成,有默认的一些选项。已经做了符合目标板的修改,问题不大了。特此上传
make[1]: `include/asm-arm/mach-types.h' is up to date. CHK include/linux/utsrelease.h CC arch/arm/kernel/asm-offsets.s cc1: error: invalid option `abi=aapcs-linux' make[1]: *** [arch/arm/kernel/asm-...
基于ncurses的menuconfig 基于ncurses的menuconfig 开发者(S) GNU项目 初始发行 1993 ; 25年前 稳定版本 2018年1月6日/ 27日; 5个月前 知识库 ftp://ftp.gnu.org/gnu/ncurses/ 在Wikidata中编辑此内容 写在 C ...
linux menuconig de 详细配置。。
3.1 make menuconfig中的 kernelmodules. 4 3.2:添加自己的模块到文件netdevices.mk. 6 4:openwrt内核编译及文件系统的生成... 7 4.1 主.config和内核.config的关系... 8 4.2 Linux内核uimage生成... 11 4.3 Linux...
uclinux make menuconfig 的使用--trace 输出的原始数据,
使用到make menuconfig配置工具的时候会依赖这个包,安装的时候选项记得写./configure --enable-mconf
用于配置内核时无法执行make menuconfig命令的情况, 使用rpm -ivh 安装上即可。