为什么linux上的curses会给我以下错误?

Ale*_*der 10 c curses linker undefined-reference

试图让getch()努力捕获按键.

    #include <curses.h>
    ...
    ...
    WINDOW *w;
    char f;

   w = initscr();
   timeout(3000);
   f = getch();
   endwin();
Run Code Online (Sandbox Code Playgroud)

给我以下错误: -

undefined reference to `wgetch'
undefined reference to `stdscr'
Run Code Online (Sandbox Code Playgroud)

Joh*_*ter 16

这是一个链接错误.您是否正确链接到curses库?

在C中使用库涉及两个步骤.

  1. #include是源文件中的相关头文件.这样您的代码就知道库函数的签名是什么.所以你正确地做到了这一点.
  2. 编译代码时,需要告诉链接器链接到相关库,以便找到这些函数的定义. 这就是你没有做的事情.假设您正在使用gcc,那么添加-lncurses到编译行应该这样做.这是链接解释.

  • 使用-lncurses选项链接到curses (8认同)