Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Turbo Vision для Dev-C++
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
Freeze Anti
Здравствуйте.

Пишу программу на C++. Интерфейс у нее должен быть консольный. Я решил использовать в своих разработках библиотеку Turbo Vision. (кому интересно - вот адрес) .

В общем, она не хочет компилировать даже свои собственные примеры. Когда я прописываю строчку, к примеру
Код
fpstream *Strm = new fpstream(fileName, CLY_IOSIn);

она мне выдает кучу линкер ерроров
Цитата
[Linker error] undefined reference to `std::__basic_file<char>::sys_open(int, std::_Ios_Openmode, bool)'
[Linker error] undefined reference to `std::basic_filebuf<char, std::char_traits<char> >::seekoff(long, std::_Ios_Seekdir, std::_Ios_Openmode)'
[Linker error] undefined reference to `std::basic_filebuf<char, std::char_traits<char> >::uflow()'

В связи в этим несколько вопросов. Зачем он в винде ищет sys_open() и подобные вещи? Как объяснить этой библиотеке, что у нас Win32 и попросту не может быть подобных функций? (ну или как ему их подсунуть?) В гугле меня, видимо, забанили, ибо ничего путного не выдает. Из документации нашел только мануал по старому борландовскому турбо вижн, работа с которым в целом практически идентична работе с этой библиотекой.

Если слишком сложно, то подскажите, как еще можно сделать TUI под вин, чтоб ее потом без особых проблем перенести на lin?

Спасибо за внимание.
amw
Цитата(Freeze Anti @ Jan 15 2009, 15:29) *
Здравствуйте.

Пишу программу на C++. Интерфейс у нее должен быть консольный. Я решил использовать в своих разработках библиотеку Turbo Vision. (кому интересно - вот адрес) .

В общем, она не хочет компилировать даже свои собственные примеры. Когда я прописываю строчку, к примеру
Код
fpstream *Strm = new fpstream(fileName, CLY_IOSIn);

она мне выдает кучу линкер ерроров

В связи в этим несколько вопросов. Зачем он в винде ищет sys_open() и подобные вещи? Как объяснить этой библиотеке, что у нас Win32 и попросту не может быть подобных функций? (ну или как ему их подсунуть?) В гугле меня, видимо, забанили, ибо ничего путного не выдает. Из документации нашел только мануал по старому борландовскому турбо вижн, работа с которым в целом практически идентична работе с этой библиотекой.

Если слишком сложно, то подскажите, как еще можно сделать TUI под вин, чтоб ее потом без особых проблем перенести на lin?

Спасибо за внимание.

Этот TV не пробовал, но типа наводящие вопросы.
Вот тут http://tvision.sourceforge.net/ написано в частности
Цитата
For Win32 you can use BC++ 5.5, Cygwin, MinGW or MSVC.

Вы чем компилируете? GCC? Тогда у Вас нехватает девелопмент пакетов от cygwin/mingw.
Freeze Anti
В общем - установил пакеты binutils, gcc-core, gcc-g++, GNU Debugger, GNU Make, MinGW runtime, Windows32 API. Толку нет. Подключал всякие библиотеки (в смысле - .a и .lib). Пока с мертвой точки не сдвинулся. Все так же на эту строчку выдает undefined reference. Может, какие не те библиотеки подключаю? если есть кто знающий - ответьте пожалуйса. А может, кто-то уже разрабатывал TUI и сможет мне посоветовать какую другую библиотеку для этого действа?
XVR
Цитата(Freeze Anti @ Jan 15 2009, 16:29) *
Здравствуйте.

Пишу программу на C++. Интерфейс у нее должен быть консольный. Я решил использовать в своих разработках библиотеку Turbo Vision. (кому интересно - вот адрес) .

В общем, она не хочет компилировать даже свои собственные примеры. Когда я прописываю строчку, к примеру
Код
fpstream *Strm = new fpstream(fileName, CLY_IOSIn);

она мне выдает кучу линкер ерроров

Цитата
[Linker error] undefined reference to `std::__basic_file<char>::sys_open(int, std::_Ios_Openmode, bool)'
[Linker error] undefined reference to `std::basic_filebuf<char, std::char_traits<char> >::seekoff(long, std::_Ios_Seekdir, std::_Ios_Openmode)'
[Linker error] undefined reference to `std::basic_filebuf<char, std::char_traits<char> >::uflow()'


В связи в этим несколько вопросов. Зачем он в винде ищет sys_open() и подобные вещи? Как объяснить этой библиотеке, что у нас Win32 и попросту не может быть подобных функций? (ну или как ему их подсунуть?)
У вас как то подцепились stream функции из стандартной библиотеки C++. Они не относятся к Linux'у, и вполне имеют право быть и в Винде.
Freeze Anti
А где их искать? Раз они стандартные, значит - в каком-то хедере должны быть.
Harbour
-lstdc++ -lsupc++
Freeze Anti
libstdc++ и libsupc++ не помогают. Все осталось, как и было. Может, кто знает другую библиотеку для создания tui?
_pv
Цитата(Freeze Anti @ Jan 19 2009, 13:22) *
Может, кто знает другую библиотеку для создания tui?

ncurses
Harbour
Цитата(Freeze Anti @ Jan 19 2009, 09:22) *
libstdc++ и libsupc++ не помогают. Все осталось, как и было. Может, кто знает другую библиотеку для создания tui?


Если осталось как было - значит либы не подключены :
..................
[Dao]:rus:~ # nm -C /usr/lib/libstdc++.a |grep sys_op
5127:00000000 T std::__basic_file<char>::sys_open(_IO_FILE*, std::_Ios_Openmode)
5128:00000000 T std::__basic_file<char>::sys_open(int, std::_Ios_Openmode)
..................
Freeze Anti
спасибо за совет про ncurses. сделал проект на pdcurses (я так понял, они похожи). только одна проблема. программа не хочет воспринимать некоторые символы кириллицы, набранные с клавиатуры (например "а" и "Ф"). кто-нибудь знает, как с этим бороться?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.