1# ncurses<a name="ZH-CN_TOPIC_0000001106844024"></a> 2 3- [简介](#section11660541593) 4- [目录结构](#section367519246426) 5- [编译构建](#section137768191623) 6- [许可证](#section126611612164217) 7 8## 简介<a name="section11660541593"></a> 9 10ncurses是一个编写文本界面(TUI)的接口库。是一个用于控制终端屏幕输出和输入的库,可以用于创建交互式的命令行界面,它提供了一系列函数来控制终端的光标位置、颜色、文本输出等。使用 ncurses 库需要先初始化,然后使用各种函数来控制终端的输出和输入。它的主要接口和功能包括 11- initscr(): 初始化curses模式,返回一个指向标准屏幕指针。 12- endwin(): 退出curses模式,恢复终端的正常状态。 13- addch(): 在当前光标位置添加一个字符,并更新光标位置。 14- addstr():在当前光标位置添加一个字符串,并更新光标位置。 15- getch(): 从键盘获取一个字符,并返回其ASCII码或键值。 16- move(): 移动光标到指定的行和列位置。 17- refresh(): 将虚拟屏幕上的内容复制到物理屏幕上,并刷新显示。 18- clear(): 清除虚拟屏幕上的内容,并将光标移动到左上角。 19 20 21在Openharonmy引入后,在lldb构建中开启编译可选依赖选项LLDB_ENABLE_CURSES,lldb.so会依赖ncurses编译生成的动态库ncurses.so,最终实现lldb调试器命令行调试时自动补齐和gui功能。 22## 目录结构<a name="section367519246426"></a> 23``` 24- Ada95 25- c++ 26- doc 27- form 28- include 29- man 30- menu 31- misc 32- ncurses 33- package 34- panel 35- progs 36- test 37- aclocal.m4 38- ANNOUNCE 39- announce.html.in 40- AUTHORS 41- config.guess 42- config.sub 43- configure 44- configure.in 45- COPYING 版权文件 46- dist.mk 47- INSTALL 48- install-sh 49- Makefile.in 50- Makefile.os2 51- MANIFEST 52- mk-0th.awk 53- mk-1st.awk 54- mk-2nd.awk 55- mk-hdr.awk 56- NEWS 57- OAT.xml OAT.xml过滤配置文件 58- README 59- README.emx 60- README.MinGW 61- README.OpenSource 项目README.OpenSource文件 62- README_zh.md 中文说明 63- TO-DO 64- VERSION 65``` 66## 编译与安装<a name="section137768191623"></a> 67 68### 单项目模式运行<a name="section1771013213818"></a> 69 70``` 71- ./configure:用于配置软件的脚本,会根据系统环境检测和设置一些变量,生成对应的Makefile和一些头文件。其中运行configure脚本的时候指定一些参数来改变配置选项,如--prefix指定安装目录,--libdir指定库文件目录,--bindir指定可执行文件目录。 72- make: 用于安装ncurses软件,根据Makefile中的规则执行一系列的操作,编译源代码,运行测试,检查外部依赖等。 73- make install: 将编译好的ncurses.so文件安装到配置时指定的目录中。 74``` 75 76 77 78## ncurses使用文档 79官方文档 https://invisible-island.net/ncurses/ncurses.html 80 81 82## 许可证<a name="section126611612164217"></a> 83 84本项目遵从MIT许可证。 85