Вопрос по undefined-reference, curses, linker, c – Почему ругательства на Linux дают мне следующую ошибку?

10

Попытка заставить getch () работать, чтобы захватить нажатие клавиши.

    #include 
    ...
    ...
    WINDOW *w;
    char f;

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

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

undefined reference to `wgetch'
undefined reference to `stdscr'

Ваш Ответ

1   ответ
16

Есть два этапа использования библиотеки в C.

Вы#include соответствующие заголовочные файлы из ваших исходных файлов. Это значит, что ваш код знает, что представляют собой сигнатуры библиотечных функций. Так что вы'делаю это правильно.При компиляции вашего кода вы должны указать компоновщику ссылаться на соответствующие библиотеки, чтобы он мог найти определение этих функций.Это то, что тыне делать, Предполагая, что выВы используете gcc, а затем добавляете-lncurses чтобы строка компиляции должна была это сделать. Вот'собъяснение ссылки.
ссылка на curses с использованием опции -lncurses aJ.
FWIW, в ноябре 2017 года лучше использоватьpkg-config, увидетьэтот ответ на очень похожий вопрос. Basile Starynkevitch
да, я включил curses.h, а также ncurses.h Alex Xander

Похожие вопросы