【问题标题】:ncurses basic example - in debug i get: "Error opening terminal: unknown."ncurses 基本示例 - 在调试中我得到:“错误打开终端:未知。”
【发布时间】:2012-11-02 12:25:06
【问题描述】:

做一些关于 ncurses 库的基本示例,我遇到了一些问题。

实际上,我没有得到我所期望的(打印消息),并且在调试中,从 Eclipse 中,我得到(在控制台区域)“打开终端时出错:未知。”

遵循代码:

#include <unistd.h>
#include <stdlib.h>
#include <ncurses.h>


int main() {

    initscr();

    move(5,15);
    printw("%s", "Hello world!");
    refresh();

    endwin();
    exit(EXIT_SUCCESS);
}

编译器选项,在 Eclipse 控制台中的“构建项目”命令中提供:

make all 
Building file: ../source/Curses_01.c
Invoking: GCC C Compiler
gcc -Incurses -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"source/Curses_01.d"     -MT"source/Curses_01.d" -o"source/Curses_01.o" "../source/Curses_01.c"
Finished building: ../source/Curses_01.c

Building target: Curses_01
Invoking: GCC C Linker
gcc  -o"Curses_01"  ./source/Curses_01.o   -lcurses
Finished building target: Curses_01

提前谢谢大家!

【问题讨论】:

    标签: c linux eclipse gcc ncurses


    【解决方案1】:

    你确实得到了打印的字符串。问题是程序立即退出。这将清除屏幕并将其恢复到以前的状态。当然,这发生得非常快,所以你什么都看不到。

    解决方案是在退出之前等待按键。你可以通过getch() 做到这一点:

    /* ... */
    refresh();
    getch();
    endwin();
    exit(EXIT_SUCCESS);
    

    Eclipse 问题的出现是由于 Eclipse 向应用程序提供的终端。 NCurses 无法识别它。我不使用 Eclipse,所以我不知道该怎么做,但你应该搜索一些设置,允许你在一个完整的终端中运行应用程序(比如在 xterm、Konsole、Gnome 终端等中)

    【讨论】:

    • 您好 Nikos,实际上,您的建议是正确的!如果我在 Eclipse 之外运行我的应用程序,它可以工作。没有 getch() 我无法看到它,因为你很难过。此外,我想让它在 Eclipse 中工作以获得调试工具。再次感谢您的回答!
    • 也许你可以在这里找到一些使用 Eclipse 和 ncurses 的答案:stackoverflow.com/questions/3938291/…
    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    相关资源
    最近更新 更多