当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]谁能将这个文件编译成功? [已解决]
帖子发表于 : 2008-02-16 10:21 
头像

注册: 2006-08-25 10:37
帖子: 736
送出感谢: 0 次
接收感谢: 0 次
想编程在终端打印彩色文本,网上搜了搜,说是要用到 ncurses ,于是在/usr/share/doc/libncurses5-dev/examples 下面找到了个 background.c ,但是编译却出了错.
代码:
/*
 * $Id: background.c,v 1.1 2003/12/07 00:06:33 tom Exp $
 */

#include <test.priv.h>

int
main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
{
    short f, b;

    initscr();
    cbreak();
    noecho();

    if (has_colors()) {
   start_color();

   pair_content(0, &f, &b);
   printw("pair 0 contains (%d,%d)\n", f, b);
   getch();

   printw("Initializing pair 1 to red/black\n");
   init_pair(1, COLOR_RED, COLOR_BLACK);
   bkgdset(' ' | COLOR_PAIR(1));
   printw("RED/BLACK\n");
   getch();

   printw("Initializing pair 2 to white/blue\n");
   init_pair(2, COLOR_WHITE, COLOR_BLUE);
   bkgdset(' ' | COLOR_PAIR(2));
   printw("WHITE/BLUE\n");
   getch();

   printw("Resetting colors to pair 0\n");
   bkgdset(' ' | COLOR_PAIR(0));
   printw("Default Colors\n");
   getch();

   printw("Resetting colors to pair 1\n");
   bkgdset(' ' | COLOR_PAIR(1));
   printw("RED/BLACK\n");
   getch();

   printw("Setting screen to pair 0\n");
   bkgd(' ' | COLOR_PAIR(0));
   getch();

   printw("Setting screen to pair 1\n");
   bkgd(' ' | COLOR_PAIR(1));
   getch();

   printw("Setting screen to pair 2\n");
   bkgd(' ' | COLOR_PAIR(2));
   getch();

   printw("Setting screen to pair 0\n");
   bkgd(' ' | COLOR_PAIR(0));
   getch();

    } else {
   printw("This demo requires a color terminal");
   getch();
    }
    endwin();

    ExitProgram(EXIT_SUCCESS);
}

编译:
$gcc background.c -lcurses -o background
background.c:5:23: error: test.priv.h: No such file or directory
background.c:8: 错误: syntax error before ‘GCC_UNUSED’
background.c: 在函数 ‘main’ 中:
background.c:24: 错误: ‘COLOR_RED’ 未声明 (在此函数内第一次使用)
background.c:24: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
background.c:24: 错误: 所在的函数内只报告一次。)
background.c:24: 错误: ‘COLOR_BLACK’ 未声明 (在此函数内第一次使用)
background.c:30: 错误: ‘COLOR_WHITE’ 未声明 (在此函数内第一次使用)
background.c:30: 错误: ‘COLOR_BLUE’ 未声明 (在此函数内第一次使用)
background.c:67: 错误: ‘EXIT_SUCCESS’ 未声明 (在此函数内第一次使用)

那个头文件找不到, 怎么办?


最后由 qlhn 编辑于 2008-02-18 13:45,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-02-16 10:29 
头像

注册: 2007-07-20 22:15
帖子: 896
送出感谢: 0 次
接收感谢: 0 次
代码:
/****************************************************************************
* Author: Thomas E. Dickey <dickey@clark.net> 1996 *
****************************************************************************/
/* $Id: test.priv.h,v 1.19 2000/09/02 19:31:58 tom Exp $ */

#if HAVE_CONFIG_H
#include <ncurses_cfg.h>
#else
#define H


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-02-16 10:30 
头像

注册: 2007-07-20 22:15
帖子: 896
送出感谢: 0 次
接收感谢: 0 次
http://203.208.37.104/search?q=cache:iM ... NMp-1dhTHQ


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-02-16 19:35 
头像

注册: 2006-12-02 12:25
帖子: 689
送出感谢: 0 次
接收感谢: 0 次
ls强人阿!


_________________
Titainium


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-02-18 13:52 
头像

注册: 2006-08-25 10:37
帖子: 736
送出感谢: 0 次
接收感谢: 0 次
现已能够编译成功.

把开头的 #include <test.priv.h> 注释掉吧.
添上一行#include<curses.h>
再把最后面的 exitprogram(...) 删掉吧, 换成 return(0);

这样就没问题了. 编译时 别忘了 加上 -lcurses


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译