Вопрос

Пытаюсь заставить getch() работать для захвата нажатия клавиши.

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

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

выдает мне следующую ошибку:-

undefined reference to `wgetch'
undefined reference to `stdscr'
Это было полезно?

Решение

Это ошибка привязки.Вы правильно ссылаетесь на библиотеку curses?

Использование библиотеки на C. Состоит из двух этапов.

  1. Ты #include соответствующие заголовочные файлы из ваших исходных файлов.Это делается для того, чтобы ваш код знал, каковы сигнатуры библиотечных функций.Значит, вы делаете это правильно.
  2. При компиляции вашего кода вам нужно указать компоновщику ссылаться на соответствующие библиотеки, чтобы он мог найти определение этих функций. Это то, чего ты не делаешь.Предполагая, что вы используете gcc, затем добавляете -lncurses к строке компиляции следует это сделать.Вот один объяснение связывания.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top