реклама на сайте
подробности

 
 
> Turbo Vision для Dev-C++, зачем-то под виндой пытается обращаться к линуксовым функциям
Freeze Anti
сообщение Jan 15 2009, 13:29
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Здравствуйте.

Пишу программу на 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?

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


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
amw
сообщение Jan 16 2009, 07:19
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(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.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Freeze Anti
сообщение Jan 16 2009, 08:15
Сообщение #3


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



В общем - установил пакеты binutils, gcc-core, gcc-g++, GNU Debugger, GNU Make, MinGW runtime, Windows32 API. Толку нет. Подключал всякие библиотеки (в смысле - .a и .lib). Пока с мертвой точки не сдвинулся. Все так же на эту строчку выдает undefined reference. Может, какие не те библиотеки подключаю? если есть кто знающий - ответьте пожалуйса. А может, кто-то уже разрабатывал TUI и сможет мне посоветовать какую другую библиотеку для этого действа?


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 16 2009, 10:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(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'у, и вполне имеют право быть и в Винде.
Go to the top of the page
 
+Quote Post
Freeze Anti
сообщение Jan 16 2009, 10:48
Сообщение #5


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



А где их искать? Раз они стандартные, значит - в каком-то хедере должны быть.


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jan 17 2009, 08:26
Сообщение #6


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



-lstdc++ -lsupc++
Go to the top of the page
 
+Quote Post
Freeze Anti
сообщение Jan 19 2009, 07:22
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



libstdc++ и libsupc++ не помогают. Все осталось, как и было. Может, кто знает другую библиотеку для создания tui?


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
_pv
сообщение Jan 19 2009, 08:10
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Freeze Anti @ Jan 19 2009, 13:22) *
Может, кто знает другую библиотеку для создания tui?

ncurses
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jan 20 2009, 07:55
Сообщение #9


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Цитата(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)
..................
Go to the top of the page
 
+Quote Post
Freeze Anti
сообщение Jan 30 2009, 16:43
Сообщение #10


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



спасибо за совет про ncurses. сделал проект на pdcurses (я так понял, они похожи). только одна проблема. программа не хочет воспринимать некоторые символы кириллицы, набранные с клавиатуры (например "а" и "Ф"). кто-нибудь знает, как с этим бороться?


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01429 секунд с 7
ELECTRONIX ©2004-2016