curses不是linux里默认的C函数库

今天在调试一个贪吃蛇程序时,出现如下错误:

[[email protected] c++]$ g++ snack.cpp -o snack
/tmp/ccCuZ3Jm.o:在函数‘playgame(int, int)’中:
snack.cpp:(.text+0xce):对‘erase’未定义的引用
snack.cpp:(.text+0xed):对‘mvprintw’未定义的引用
snack.cpp:(.text+0x140):对‘mvprintw’未定义的引用
snack.cpp:(.text+0x166):对‘move’未定义的引用
snack.cpp:(.text+0x16b):对‘refresh’未定义的引用
/tmp/ccCuZ3Jm.o:在函数‘main’中:
snack.cpp:(.text+0x2ca):对‘initscr’未定义的引用
snack.cpp:(.text+0x2cf):对‘cbreak’未定义的引用
snack.cpp:(.text+0x2d6):对‘stdscr’未定义的引用
snack.cpp:(.text+0x2e3):对‘keypad’未定义的引用
snack.cpp:(.text+0x2e8):对‘refresh’未定义的引用
snack.cpp:(.text+0x2ef):对‘stdscr’未定义的引用
snack.cpp:(.text+0x2fb):对‘stdscr’未定义的引用
snack.cpp:(.text+0x314):对‘stdscr’未定义的引用
snack.cpp:(.text+0x320):对‘stdscr’未定义的引用
snack.cpp:(.text+0x35f):对‘move’未定义的引用
snack.cpp:(.text+0x370):对‘halfdelay’未定义的引用
snack.cpp:(.text+0x48a):对‘stdscr’未定义的引用
snack.cpp:(.text+0x492):对‘wgetch’未定义的引用
snack.cpp:(.text+0x4a9):对‘endwin’未定义的引用
collect2: 错误:ld 返回 1

在网上找了很久后终于发现了问题所在。因为 curses 不是linux里默认的C函数库,所以导致编译时未找到函数定义

正确的方法是:

[[email protected] c++]$ g++ snack.cpp -o snack -l curses
[[email protected] c++]$ ./snack

时间: 2024-08-03 14:48:39

curses不是linux里默认的C函数库的相关文章

linux 函数库使用

程序函数库可分为3种类型:静态函 数库(static libraries).共享函数库(shared libraries)和动态加载函数库(dynamically loaded libraries) 静态函数库是在程序执行前就加入到目标程序中去了:而共享函数库则是在程序启动的时候加载到程序中,它可以被 不同的程序共享:动态加载函数库则可以在程序运行的任何时候动态的加载.实际上,动态函数库并非另外一种库函数格式,区别是动态加载函数库是如何被程序员 使用的.后面我们将举例说明 静态函数库 静态函数库

Linux里的循环语句

Linux是一套免费使用和自由传播的类Unix操作系统,也是一款开源的操作系统.它的一个重要特性就是命令行界面和shell,shell环境使得用户能与操作系统的核心功能进行交互. 术语脚本更多涉及的便是这种环境,编写脚本通常就是基于某种解释器的编程语言.而Bash就是目前大多数Linux系统默认的shell环境. 编程里的编程风格分为两种: (1)过程式编程:它是以指令为中心,数据服务于指令 (2)对象式编程:它是以数据为中心,指令服务于对象 shell程序是一个过程式的解释器,它提供了编程能力

linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释

•/etc/passwd文件用于存放用户账户信息,每行代表一个账户,每个账户的各项信息用冒号分割,例如: root:x:0:0:root:/root:/bin/bash username:password:uid:gid:allname:homedir:shell 1.用户名. 2.密码,“x”代表密码存储在/etc/shadow中:当该值为其他任意非“x”值时,可以通过root用户切换(不需要密码),但是都无法通过非root用户切换到相应用户,因为无法获得起密码了. 3.uid,用户id,0-

linux里忘记root密码解决办法

1:打开虚拟机,点‘启动’按钮, 2:出现上面这个界面时,键盘输入’i’,出现grub界面: 3:键盘输入e,出现如下界面: 4:选择第二行(kernel……) 5:键盘输入e,出现如下界面: 6:在rhgb quiet后加上空格和数字1或者空格和single后回车. 这里以加空格和数字1为例: 然后,系统自动回到了上一层编辑界面,然后直接按b键,以简单模式重启. 重启过程在此省略. 重启完毕后,就到了下面的界面了,就可以开始修改密码了. 直接输入passwd 回车即可修改密码,在默认情况下这里

linux curses函数库

fedora20,安装yum install ncurses-devel 编译时:-lncurses 头文件:#include<curses.h> 参考:man ncurses \linux程序设计 一,屏幕 1, 以initscr()开始,以endwin();结束 WINDOW *initscr(void); //初始化 int endwin(void); // 退出curses, 返回OK/ERR 2, 输出到屏幕 int addch(const chtype ch); //当前位置add

Linux里隐藏的计算器,你知道它的奥秘吗?

大家都知道,windows下有个计算器工具,我们在工作生活中经常使用到它.但是,你可知Linux下也同样有个计算器吗? 当然,良许说的是命令行下的计算器工具,而不是界面型的计算器.良许是Linux应用开发工程师,平时基本是在命令行下工作,所以对于界面类的操作良许也不是非常擅长. 启动计算器 启动这个命令行计算器很简单,只需在终端下输入bc即可.bc是英语basic calculator的缩写.退出计算器也很简单,只需输入quit即可. 选项 当然,这个计算器也是可以带选项的,常用的选项如下: -

linux里source、sh、bash、./有什么区别(转)

add by zhj: 主要不同是,source是在当前shell中执行脚本,而sh, bash, ./是在当前shell的child shell中执行脚本 原文:http://www.cnblogs.com/pcat/p/5467188.html 在linux里,source.sh.bash../都可以执行shell script文件,那它们有什么不同吗? ----------- 1.source source a.sh 在当前shell内去读取.执行a.sh,而a.sh不需要有"执行权限&q

一般的linux系统默认安装的vim是精简版

一般的linux系统默认安装的vim是精简版(vim-tiny),所以不能配置语法检查等属性或获取在线帮助.需要安装vim-x:x.x.x,vim-common,vim-runtime. :syntax on 启动语法检查 或 :set syntax=sh :set hlsearch 搜索高亮 :set tabstop=4 tab为多少个空格 :set autoindent 自动缩进,即与上一行对其 可以将这些配置放在~/.vimrc中,不带冒号,一行一个命令.

linux里终端安转视频播放器的操作及显示

[[email protected] ~]$ mplayerbash: mplayer: command not found[[email protected] ~]$ yum list | grep mplayer^C^C Exiting on Broken Pipe [[email protected] ~]$ [[email protected] ~]$ SUbash: SU: command not found[[email protected] ~]$ su密码:su: 密码不正确[[