URN Logo
UNIX Resources » Linux » China Linux Forum » C/C++编程版 » 23 » [求助]关于Linux下如何查找相关函数的实现包含在哪个库文件里
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
[求助]关于Linux下如何查找相关函数的实现包含在哪个库文件里
 
 
 
Subject: [求助]关于Linux下如何查找相关函数的实现包含在哪个库文件里
Author: wchknudt    Posted: 2005-10-22 21:55    Length: 1,199 byte(s)
[Original] [Print] [Top]
为什么getch函数用不了?

--------------------------------------------------------------------------------

环境是Fedora Core 2 或RedHat Linux 9

源代码如下:
#include <stdio.h>
#include <curses.h>
#include <stdlib.h>

int main()
{
char c ;

c =getch();

}

用gcc -o test test.c报错如下:
/tmp/ccniKhzp.o(.text + 0x15): In function 'main':
:undefined reference to 'stdscr'
/tmp/ccniKhzp.o(.text + 0x1a): In function 'main':
:undefined reference to 'wgetch'
collect2: ld returned 1 exit status

我用man 看了, <curses.h>里确实声明了getch()这个函数
我觉得可能是没有对库进行链接,所以我试图用以下的方法去找哪个库里包含了getch()的实现,
用以下方法:
nm -o /lib/*.so|grep getch>~/getch
用more ~/getch查看,没有找到我要的结果.
这该怎么办?

(注: 原来在Windows 下使用VC++ 或TC 的时候 getch()是在conio.h里说明的,但不知为什么Linux里会在curses.h里)
[Original] [Print] [Top]
Subject: Re: [求助]关于Linux下如何查找相关函数的实现包含在哪个库文件里
Author: sideleft    Posted: 2005-10-23 13:54    Length: 27 byte(s)
[Original] [Print] [Top]
gcc -lcurses -o test test.c
[Original] [Print] [Top]
Subject: Re: [求助]关于Linux下如何查找相关函数的实现包含在哪个库文件里
Author: Atu    Posted: 2005-10-24 08:42    Length: 735 byte(s)
[Original] [Print] [Top]

1. nm命令加一个参数-D
$ man nm
-D
--dynamic
Display the dynamic symbols rather than the normal symbols. This
is only meaningful for dynamic objects, such as certain types of
shared libraries.

2. curses里面的getch()和DOS环境<conio.h>里面的getch()不是一回事
使用curses里面的getch(),需要初始化curses环境,并且它有一系列配套函数

3. 如果你只是希望不敲回车就读入字符,可以找找终端编程方面的资料看看。
把终端设置成非canonical模式,
<<UNIX环境高级编程>>一书有一章专门讲终端I/O。
[Original] [Print] [Top]
« Previous thread
语法高亮的设计思路是什么?
C/C++编程版
23
Next thread »
eclipse + cdt 写c++程序时,失去响应,cpu和内存占用率急速上升,怎么回事??(附图
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 03:52:31, cost 0.063000917434692 ms.