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

问题描述 投票:10回答:1

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

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

   w = initscr();
   timeout(3000);
   f = getch();
   endwin();

给我以下错误: -

undefined reference to `wgetch'
undefined reference to `stdscr'
c linker curses undefined-reference
1个回答
16
投票

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

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

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