URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 921
[ Назад ]

Исходное сообщение
"Помогите установить библиотеку NCURSES-5.2 под Linux"

Отправлено Danger Dancer , 22-Авг-02 14:17 
Скачал библиотечку ncurses-5.2, и уже вторые сутки бьюсь - не могу ееё поставить. Мне оттуда нужны функции clear() и getch(). Сам я под Линухом работал очень мало - наверное что-то не догоняю. Делаю все по инструкции: запускаю configure, потом пишу make, потом make install. Программка проще некуда:

#include <iostream.h>
#include <curses.h>

void main(void)
{ clear();
cout<<"Hello"<<endl;
getch();
}

При компиляции g++ выдает, что не определены clear, stdscr и wgetch. В файле curses.h нахожу по поводу getch() такие строки:

extern WINDOW *stdscr;
#define getch()       wgetch(stdscr)
extern int wgetch(WINDOW *)           /*implemented*/

Насколько я понял, это означает, что данные функции и указатели описываются в каком-то внешнем файле, но в каком и где он лежит?????? Помогите пожалуйста, а то я уже полдня тупо смотрю в монитор и не знаю что с этим делать.


Содержание

Сообщения в этом обсуждении
"RE: Помогите установить библиотеку NCURSES-5.2 под Linux"
Отправлено Аноним , 22-Авг-02 22:58 
>Скачал библиотечку ncurses-5.2, и уже вторые сутки бьюсь - не могу ееё
>поставить. Мне оттуда нужны функции clear() и getch(). Сам я под
>Линухом работал очень мало - наверное что-то не догоняю. Делаю все
>по инструкции: запускаю configure, потом пишу make, потом make install.

Все правильно. Но: при сборке своей программы добавьте флажок
-lcurses
к командной строчке g++.


"RE: Помогите установить библиотеку NCURSES-5.2 под Linux"
Отправлено Danger Dancer , 23-Авг-02 10:30 
>Все правильно. Но: при сборке своей программы добавьте флажок
>-lcurses
>к командной строчке g++.

Здорово, большое спасибо, все скомпилилось, правда работает не так как я ожидал.
Команда clear() ничего не делает, а я думал, что она очистит окно терминала.
Команда getch() тоже ничего не делает, а я думал. что она будет терпеливо дожидаться нажатия какой-либо клавиши.

Не подскажете в чем дело, в этой библиотеке по другому реализованы эти команды, чем в conio.h?

И еще вопрос в догонку, я еще хочу связать прогу с библиотекой libpq (от для подключения к PostgreSQL), но на флажок -llibpq компилятор говорит, что не может найти -llibpq, может быть она по другому называется, где это можно посмотреть?



"RE: Помогите установить библиотеку NCURSES-5.2 под Linux"
Отправлено anonymous , 23-Авг-02 22:11 
Sorry for English.

>>Все правильно. Но: при сборке своей программы добавьте флажок
>>-lcurses
>>к командной строчке g++.
>
>Здорово, большое спасибо, все скомпилилось, правда работает не так как я ожидал.
>
>Команда clear() ничего не делает, а я думал, что она очистит окно
>терминала.
>Команда getch() тоже ничего не делает, а я думал. что она будет
>терпеливо дожидаться нажатия какой-либо клавиши.
>
>Не подскажете в чем дело, в этой библиотеке по другому реализованы эти
>команды, чем в conio.h?

curses is similar to conio, but not quite like it. I can not describe
a curses programming model in this message, it would take a serious
article. For starters, read a documentation about cbreak/nocbreak modes.

>И еще вопрос в догонку, я еще хочу связать прогу с библиотекой
>libpq (от для подключения к PostgreSQL), но на флажок -llibpq компилятор
>говорит, что не может найти -llibpq, может быть она по другому
>называется, где это можно посмотреть?

It should be -lpq. If the linker still complains, add a flag
-L/usr/local/pg/lib (or wherever the libpq.a (or libpq.so) lives).
Then, if the program wouldn't run, make sure that this path is
known to loader.


"RE: Помогите установить библиотеку NCURSES-5.2 под Linux"
Отправлено Danger Dancer , 26-Авг-02 10:35 

>
>curses is similar to conio, but not quite like it. I can
>not describe
>a curses programming model in this message, it would take a serious
>
>article. For starters, read a documentation about cbreak/nocbreak modes.
>
Да, я нашел в документации про cbreak/nobreak, но на английском не понял как именно они используются и что там сказано про tty. При попытке использовать cbreak(); в программе, при выполнении она останавливается и выдает Segmentation fault. :~0
>
>It should be -lpq. If the linker still complains, add a flag
>
>-L/usr/local/pg/lib (or wherever the libpq.a (or libpq.so) lives).
>Then, if the program wouldn't run, make sure that this path is
>
>known to loader.

Большое спасибо.


"RE: Помогите установить библиотеку NCURSES-5.2 под Linux"
Отправлено Danger Dancer , 27-Авг-02 14:35 
Всё, я разобрался, всем большое спасибо, я просто не проинициализировал библиотеку ( initscr();)

Нашел классную доку по этой библиотеке, если кому понадобится:

http://linux.ihep.su/LDP/HOWTO/NCURSES-Programming-HOWTO