Причина ошибки и решения - «неопределенная ссылка на« newwin »»? - PullRequest
1 голос
/ 12 ноября 2009

Я компилирую программу, которая создает окно на оболочке. Когда я компилирую, я получаю ошибки типа

test.c:(.text+0x25): undefined reference to `newwin'
test.c:(.text+0x73): undefined reference to `wborder'
test.c:(.text+0xb6): undefined reference to `mvwprintw'
..
..

Одна из моих функций

WINDOW *f_top, *f_bottom;
WINDOW *create_window(int n, int d, char *t){
        WINDOW *frame;
        WINDOW *w;
        frame = newwin(n, COLS, d, 0);
        box(frame,0,0);
        mvwprintw(frame,0,COLS/2-strlen(t)/2,t);
        wrefresh(frame);
        w = newwin(n-2, COLS-2, d+1, 1);
        idlok(w, TRUE);
        scrollok(w, TRUE);
        wclear(w);
        wrefresh(w);
        return w;
}

Ответы [ 2 ]

3 голосов
/ 12 ноября 2009

Вам нужно связаться с библиотекой curses. Функции там определены.

Попробуйте

gcc ... test.c ... -lcurses ...

или, может быть

gcc ... test.c ... -lncurses ...
0 голосов
/ 13 декабря 2013

Чтобы быть более явным,

Во-первых, при необходимости вам нужно установить библиотеку curses (или ncurses).

Во-вторых, включите curses.h

В-третьих, их нужно найти, у вас могут быть проблемы с $ PATH.

Наконец, в зависимости от того, сколько позже это читается, могут быть «устаревшие» функции. - найдите в curses.h (а затем и в Интернете) имена.

Обычно для 64-битной установки Linux соответствующие ресурсы могут быть найдены в:

/ USR / Lib / x86_64-Linux-гну / libncurses.so

/ USR / включать / curses.h

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...