LINUX.ORG.RU

С++ /STL для DOS

 


0

1

Добрый день! Не подскажете, есть ли возможность скомпилировать приложение С++/STL под DOS и запустить? Как, например, скомпилировать следующее приложение?

#include <iostream>
#include <vector>

int main()
{
	
	std::vector<int> A;
	A.push_back(1);
	std::cout<<A[0]<<std::endl;
	return 0;
}

Установила DosBox, расшарила папку, подскажите, пожалуйста, следующие шаги? C помощью Turbo С скомпилировать мое приложение не удастся, может, есть какие-то среды и/или компиляторы для С++/STL?

Перемещено mono из general


C помощью Turbo С скомпилировать мое приложение не удастся

Конечно не удастся. Поищи Watcom C++. Он вроде бы не так сильно протух.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Спасибо, он и STL поддерживает? А кто-нибудь пробовал Digital Mars cross-compiler Тут вот советуют http://www.rsdn.ru/forum/cpp.applied/2267284.flat

Для DOS-16 также можно иметь вполне «вменяемый» (c) C++ c поддержкой stl, посмотрите Digital Mars cross-compiler, только отлаживаться, боюсь, придется принтфами...

, но у меня что-то не устанавливается, пишет,что требуется Windows32.

Masha ()
Ответ на: комментарий от Masha

Спасибо, он и STL поддерживает?

Старые досовские версии поддерживают STLport. Точнее наоборот. В общем нужно будет повозиться, скомпилять STLport под watcom.

В openWatcom есть STL из коробки, но я не знаю работает ли openWatcom под досом.

UPD: посмотрел, вроде пишут, что работает.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Спасибо!Вроде пишут,что OpenWatcom поддерживает DOS. Не могу понять, где его скачать и как установить и потом скомпилировать мой пример.Отсюда скачать не удается. http://www.openwatcom.org/index.php/Download#Downloads

Может, быть Вы устанавливали и работали с Watcom C++ и использовали STLports? Не могли бы Вы мне помочь в этом случае с компиляцией моего приложения?

Masha ()

Как же хорошо жить в будущем.

anonymous ()
Ответ на: комментарий от sigurd

Спасибо! Не подскажете, где можно его скачать для DosBox? Там есть STL?

Masha ()
Ответ на: комментарий от Masha

Отсюда скачать не удается

С зеркал вроде бы качается. Я проверял с французского http://openwatcom.mirror.fr/

Может, быть Вы устанавливали и работали с Watcom C++ и использовали STLports?

Я работал с этим компилятором в 90-х, когда это было актуально, но не с крестами, и ЕМНИП тогда в крестах в этом компиляторе STL не было.

Не могли бы Вы мне помочь в этом случае с компиляцией моего приложения?

У меня тут своих дел по горло, так что нет.

no-such-file ★★★★★ ()

Маша, вы таки дописали FTP-клиент?

false ★★★★★ ()
Ответ на: комментарий от Masha

Не подскажете, как мне скомпилировать ntgthm свою программу?

wcl -xs main.cpp

anonymous ()
#!/bin/bash

TARGET=open-watcom
SETUP=open-watcom-c-dos-1.9.exe
URL=http://openwatcom.mirrors.pair.com/$SETUP

if [ ! -f $SETUP ]; then
  wget $URL
fi

rm -rf $TARGET 2>/dev/null

mkdir $TARGET
cp $SETUP $TARGET
pushd $TARGET

cat >MAIN.CPP <<EOF
#include <iostream>
#include <vector>
int main(int argc, char* argv)
{
  std::vector<int> A;
  A.push_back(1);
  std::cout<<A[0]<<std::endl;
  return 0;
}
EOF

cat >MAIN.BAT <<EOF
OPEN-W~1.EXE -s
CALL AUTOEXEC.BAT
WCL -xs MAIN.CPP
MAIN.EXE
EOF

dosbox -c "mount c: $PWD" -c "c:" -c "MAIN.BAT"

popd
anonymous ()

Можно djgpp попробовать.

GAMer ★★★★★ ()
Ответ на: комментарий от GAMer

Спасибо! но я читала, что он только для 32-битного DOS...Вообще, не подскажете, как узнать разрядность системы в DOS? Команда ver не выдает такой информации.

Masha ()
Ответ на: комментарий от Masha

разрядность системы в DOS

16, остальное делается через жо^H^H DOS extender'ы/DPMI.
Впрочем, если не надо пользоваться сервисами DOS/BIOS, можно хозяйничать как душе угодно.

GAMer ★★★★★ ()

Девушка-некрофил на линуксовом форуме? ЛОР ещё торт!

DELIRIUM ★★★★★ ()
Ответ на: комментарий от anonymous

Спасибо! Видимо, я не перезапустила систему, поэтому команда wcl у меня не опознается...Не подскажете, как перезапустить систему в DOSBox?

Masha ()
Ответ на: комментарий от Masha

Оно шаблоны поддерживало, по идее. Может можно было и STL прикрутить.

yoghurt ★★★★★ ()
Ответ на: комментарий от Masha

команда wcl не распознается

PATH
Скорее всего будет пусто, что-то типа PATH=C:\WATCOM\BIN;
потом возможно ещё set include=... и прочее.
readme читать надо, ага.

GAMer ★★★★★ ()

Посмотри djgpp. Там тебе и компилятор, и STL, и DOS extender для работы в 32-битном режиме с плоской моделью памяти.

m0rph ★★★★★ ()
Последнее исправление: m0rph (всего исправлений: 1)
Ответ на: комментарий от DELIRIUM

Инкрементирую. Я думал этой фейк. Да и по теме: ИМХО, с STL под ДОС туго будет...

Twissel ★★★★★ ()
Ответ на: комментарий от Masha

В SET'ах пути для include и lib стоят?
Как фактически называются файлы? Может iostream.h/hpp?

GAMer ★★★★★ ()
Ответ на: комментарий от GAMer

Не поняла, как это посмотреть, я просто пробую скомпилировать свой пример, больше ничего нигде не настраивала.

Masha ()
Ответ на: комментарий от Twissel

Почему вы так думаете? Какие проблемы Вы имеете в виду?

Masha ()
Ответ на: комментарий от Masha

ЕМНИП, в компиляторах нормально работающих под ДОС, стандарт STL 98 или вообще собственные костыли в реализации. И по Вашей теме не проще ли поставить на виртуалку Win98 а на нее уже например Borland C++ 5.5?! И повторюсь, мне просто интересно какая у вас необходимость мучить такое старьё?!

Twissel ★★★★★ ()

Не вижу чтобы передовалось

-cc++
в качестве опций компилятора.

By default, the Open Watcom C compiler will be selected to compile a file with a «C» extension. The default selection of compiler can be overridden by the «cc» and «cc++» options, described below.

Не удивительно, что компилятор не втыкает что такое iostream и т.п.

asaw ★★★★★ ()
Последнее исправление: asaw (всего исправлений: 1)
Ответ на: комментарий от Masha

Несмотря на то, что в файле AUTOEXEC.BAT прописано

set include=c:\watcom\h

заголовочные файлы не подключаются, подключаю их вручную

wcl -xs test.cpp -ic:\watcom\h

и пробую снова компилировать свой пример, теперь возникает ошибка линкера: http://screeny.ru/5331469ead32b5dc40039f2e

Masha ()
Ответ на: комментарий от Masha

enviroment name watcom not found

Может быть надо сделать set wacom=C:\watcom ?

anonymous ()
Ответ на: комментарий от Masha

заголовочные файлы не подключаются, подключаю их вручную

А просто SET список переменных даёт?

GAMer ★★★★★ ()
Ответ на: комментарий от Masha

Ну так дай ему set include=где-они-там-у-ваткома, и set lib=...

GAMer ★★★★★ ()
Ответ на: комментарий от GAMer

Согласно, readme.txt написала такой bat-файл:

@ECHO OFF
SET WATCOM=C:\WATCOM
SET PATH=%WATCOM%\BINW;%PATH%
SET EDPATH=%WATCOM%\EDDAT
SET INCLUDE=%WATCOM%\H
REM SET LIB=
REM SET WWINHELP=D:\BINW
запускаю его, просто выполняя file.bat из командной строки.

затем выполняю SET и в его выводе ничего не меняется...

Masha ()
Ответ на: комментарий от Masha

затем выполняю SET и в его выводе ничего не меняется

А если ручками в командной строке? Кроме того DOS в DOSBox вроде не совсем как в VM работает, так что возможно эти команды придётся в конец его конфига дописать.

GAMer ★★★★★ ()
Ответ на: комментарий от GAMer

Спасибо! После того, как я вручную из консоли выполнила

SET WATCOM=c:\WATCOM
у меня все собралось и заработало.

Masha ()

количество значков «\» — в этой теме ну просто зашкаливает :-)

user_id_68054 ★★★★★ ()

Попробуй Qt, хотя бы для интереса, они любят всякое говно мамонта поддерживать.

frozenix ★★★ ()

Маша, родная, скажи, когда ты уже заберешь свое некроговно и свалишь на винфак? На весь трекер воняешь.

Deleted ()
Ответ на: комментарий от DELIRIUM

Девушка-некрофил

которая нифига сама не умеет и постоянно хочет, чтобы ей всё разжевали, а то и сделали за неё. Как с работы не выгнали ещё - не понимаю. Видимо оборонка какая - бабла не платят, вот и приходится терпеть кого попало.

lazyklimm ★★★★★ ()
Ответ на: комментарий от lazyklimm

nasha oboronka kyda ly4she 4em y xoxlov, oni svoi yadernii potencial eshe v na4ale 90x razbazarili, a sei4as okon4atelno prodalis' byrjuyam.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.