Скачал библиотечку 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*/Насколько я понял, это означает, что данные функции и указатели описываются в каком-то внешнем файле, но в каком и где он лежит?????? Помогите пожалуйста, а то я уже полдня тупо смотрю в монитор и не знаю что с этим делать.
>Скачал библиотечку ncurses-5.2, и уже вторые сутки бьюсь - не могу ееё
>поставить. Мне оттуда нужны функции clear() и getch(). Сам я под
>Линухом работал очень мало - наверное что-то не догоняю. Делаю все
>по инструкции: запускаю configure, потом пишу make, потом make install.Все правильно. Но: при сборке своей программы добавьте флажок
-lcurses
к командной строчке g++.
>Все правильно. Но: при сборке своей программы добавьте флажок
>-lcurses
>к командной строчке g++.Здорово, большое спасибо, все скомпилилось, правда работает не так как я ожидал.
Команда clear() ничего не делает, а я думал, что она очистит окно терминала.
Команда getch() тоже ничего не делает, а я думал. что она будет терпеливо дожидаться нажатия какой-либо клавиши.Не подскажете в чем дело, в этой библиотеке по другому реализованы эти команды, чем в conio.h?
И еще вопрос в догонку, я еще хочу связать прогу с библиотекой libpq (от для подключения к PostgreSQL), но на флажок -llibpq компилятор говорит, что не может найти -llibpq, может быть она по другому называется, где это можно посмотреть?
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.
>
>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.Большое спасибо.
Всё, я разобрался, всем большое спасибо, я просто не проинициализировал библиотеку ( initscr();)Нашел классную доку по этой библиотеке, если кому понадобится: