1. 安装

//方法一
sudo apt-get install libncurses5-dev 【 ubuntu 16.04:亲测有效】 //方法二
sudo apt-get install ncurses-dev //方法三【手动,ubuntu 16.04 测试:ncurses-6.0.tar.gz 版本 编译错误,无法使用】
step1:下载安装包:
手动下载:http://ftp.gnu.org/pub/gnu/ncurses/
或者 wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-<version>.tar.gz【与手动效果一致,且文件将下载在命令行所处的文件夹下】 step2:tar zxvf ncurses<version>.tar.gz
【解释/辨析】
tar -z, --gzip, --gunzip --ungzip fileame:对经过gzip压缩的tar备份文件,使用gzip解压
gzip -d fileame:对gzip文件解压
tar -x,--extract,--get fileame:从备份文件中还原文件
tar -v,--verbose fileame:显示指令执行过程
tar -f,--file fileame:指定备份文件 step3: 切换到超级用户
安装需要切换到root权限:su root step4:cd ncurses<version> 进入解压缩的目录(注意版本) step5:./configure 按照你的系统环境制作安装配置文件 step6:进入解压的文件夹下,有一个 ncurses目录(其目录下含MakeFile文件夹),执行编译
make step7:make install 安装编译好的NCURSES库 step8:检测是否安装好?
cat /usr/lib,查看是否有libncurses.so或libncurses.a这个库

2.执行与使用curses库

//step1:在c/c++程序中,引入库<curses.h>

//step2:【很重要】命令行显式链接动态库,否则:可能可以看到如下图所示错误
gcc program.c -o program -l curses 【gcc -l 库名:指定加入动态链接库】(c程序)
或者
g++ program.c -o program -l curses 【g++ -l 库名:指定加入动态链接库】(c++程序)

【图中错误原因:curses 不是linux里默认的C函数库编译时应该 加上 -l curses搜索gcc xx.c -o xx -l curses

测试DEMO【非亲测】

include <unistd.h>
#include <stdlib.h>
#include <curses.h> int main() {
initscr();
move( 5, 15 );
printw( "%s", "Hello world" );
refresh();
sleep(2);
endwin();
exit(EXIT_SUCCESS);
}

执行: g++ test.c -l ncurses && test.out

参考文献:

  【Linux下的Curses库的下载与安装】(http://blog.csdn.net/damotiansheng/article/details/40106249)

Linux下curses函数库】(https://www.cnblogs.com/dandingyy/archive/2012/08/23/2651644.html)

  【getnstr(), getstr(), mvgetnstr(), mvgetstr(), mvwgetnstr(), mvwgetstr(), wgetnstr(), wgetstr()】(https://www.mkssoftware.com/docs/man3/curs_getstr.3.asp)

[C++]Linux之图形界面编程库[curses库]之入门教程的更多相关文章

  1. Linux C 程序 GTK+图形界面编程(22)

    GTK+图形界面编程 Linux大多是在字符界面,但也可以开发图形界面 目前已经存在多种Linux下开发图形界面的程序开发包:最常用的是Qt和GTK+ Qt是一个跨平台的图形界面开发库,不仅仅支持Li ...

  2. python在linux制作图形界面(snack)

    snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块. 1.获取模块 虽然redhat系统会自带这个模块,但是直接去import snac ...

  3. Java中的图形界面编程

    前言 正文 Java中的图形界面编程 AWT/Swing AWT(Abstract Window ToolKits,抽象窗体工具集) 1.容器类:用来存储组件,实现容器布局 2.组件类:实现界面的一些 ...

  4. C语言控制台窗体图形界面编程(总结)

    本系列文章是笔者通过学习<C语言控制台窗体界面编程(修正版)>而写(关于此文档的很多其它信息请看本系列文章第一篇),旨在让大家更加清晰简洁easy地学习C语言控制台窗体界面的编程. 通过本 ...

  5. python 教程 第十九章、 图形界面编程

    第十九章. 图形界面编程 import Tkinter top = Tkinter.Tk() hello = Tkinter.Label(top, text='Hello World!') hello ...

  6. 图形界面编程成就了C++

    听有人说C#.VB比C++好是因为做界面方便还算傻得可爱,听有人说用C++做数值计算而不屑于做界面可就对不起咱C++的恩人了.这我可要说道说道. 想当年C++刚出江湖,名门出身,自立门派,想抢Obje ...

  7. 【情人节选帽子】TCS34725颜色传感器和Python图形界面编程(STM32 HAL库)

    截图 描述: l  STM32 HAL库编程 l  使用模拟IIC通信,方便程序移植 l  Python界面编写,蘑菇头的帽子是什么颜色 l  STM32 HAL库串口通信 l  Python界面使用 ...

  8. unix/linux中图形界面那些事

    我们知道unix/linux刚开始的时候是没有图形界面的,随着时代的发展,排版.制图.多媒体应用越来越普遍了,这些需求都需要用到图形界面(Graphical User Interface).为此,MI ...

  9. Linux 安装图形界面及远程连接

    #可查询哪些组件是否已经安装(可用来对照组件名称) yum grouplist yum groupinstall 'X Window System' -y #安装GNOME桌面环境 yum group ...

随机推荐

  1. big emoji & emoji

    big emoji & emoji font-size: 10 rem; https://www.clickemoji.com/ https://www.cnblogs.com/xgqfrms ...

  2. 时空CLR解密登陆密码源码

    public static SqlString GetPwd(string code ) { string txt = code; if(string.IsNullOrEmpty(txt)) { re ...

  3. 我终于激活Windows Server2008 R2了!!

    经过我不懈的努力,在重装两次系统后,我终于实现了win2008的KMS激活.这个方法可以避免虚拟机架设KMS服务器的麻烦.现将激活方法发布如下. 首先要选择安装的操作系统.Windows Server ...

  4. mysql 8.0,运行springboot项目配置:

    1.修改pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connecto ...

  5. python----面对对象三大特征2

    多态 什么是多态?多态指的是一类事物有多种形态,例如一个动物类,狗和猫都通过继承动物类来得来,这样我们可以将狗.猫称作动物类的另一种形态. 在java中也存在多态,java中的多态是用来解决在一个函数 ...

  6. BZOJ2795&2890&3647[Poi2012]A Horrible Poem——hash

    题目描述 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节.如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到. 输入 第一行一个正整数n (n<= ...

  7. BZOJ2212 POI2011Tree Rotations(线段树合并)

    显然子树内的操作不会对子树外产生影响.于是贪心,若交换之后子树内逆序对减少就交换. 这个东西可以用权值线段树计算.操作完毕后需要对两棵权值线段树合并,这个的复杂度是两棵线段树的重复节点个数.那么总复杂 ...

  8. HDU-5373-水题-卡常数时间

    姿势就是力量啊! 第一次意识到long long 比 int要慢很多.当时想到了各种优化仍然TLE,最后也没A出来,就是用了long long #include <cstdio> #inc ...

  9. python 模块和包

    一,模块 1,什么是模块? 常见的场景: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py 的后缀. 但其实 import 加载的模块分为四个通用类别: 1,使用pyt ...

  10. Can you answer these queries? HDU - 4027(线段树+技巧)

    题意:给一个数组序列, 数组长度为100000 两种操作: 一种操作是将某一个固定区间所有数开方(向下取整) 另一种操作是询问某个区间的所有数字之和. 由于数不超过263,因此开个七八次就变成1,由于 ...