Компиляция с длинным списком аргументов (более 128 символов) в MS-DOS

Я поддерживаю программу аппаратного мониторинга, которая будет выполняться в 16-битной MS-DOS. Я использую dosbox с TurboC(tcc.exe) в качестве среды сборки

Хотя командная строка DOS не может принять команду, длина которой превышает 128 символов (Ref), но у меня есть длинный список аргументов, например:

tcc.exe -ID:\tc\include -LD:\tc\lib -o MyProgram.exe MyProgram.cpp A.obj B.obj C.obj .........

Поэтому я не могу успешно построить код. У кого-нибудь есть идея побороть эту ситуацию? Спасибо.


person Brightshine    schedule 24.06.2014    source источник
comment
Может быть, поместите свои .obj файлы в библиотеку и свяжите их?   -  person Fred Larson    schedule 24.06.2014
comment
Другой вариант описан на сайте msdn. support.microsoft.com/kb/830473   -  person Happington    schedule 24.06.2014
comment
Рассмотрите возможность использования нотации @. А еще лучше переключитесь на Linux и GCC!   -  person Basile Starynkevitch    schedule 24.06.2014
comment
@FredLarson: как «ar» в gcc? Есть ли у Turbo C возможность сделать это?   -  person Brightshine    schedule 24.06.2014
comment
@BasileStarynkevitch : @обозначение ? Как ? Я также хочу переключиться на linux/gcc, но сначала он должен связаться с клиентом.   -  person Brightshine    schedule 24.06.2014
comment
@Brightshine: я уверен, что это можно сделать, но я не помню, как. Прошло не менее 20 лет с тех пор, как я использовал Turbo C.   -  person Fred Larson    schedule 24.06.2014
comment
@FredLarson: я обнаружил, что tlib может это сделать! docwiki.embarcadero.com/RADStudio/XE5/en/   -  person Brightshine    schedule 25.06.2014


Ответы (2)


Проверьте документацию вашего компилятора. Многие компиляторы позволяют помещать параметры в текстовый файл и указывать имя текстового файла в качестве параметра командной строки.

Например, если «compiler_options.txt» содержит команды, то следующим может быть способ передачи файла:

tcc.exe @compiler_options.txt  

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

person Thomas Matthews    schedule 24.06.2014

Вы пытались установить максимальное значение в файле CONFIG.SYS: shell=c:\windows\command.com /u:250 /p

person CamW    schedule 24.06.2014
comment
Обратите внимание, что command.com поддерживает только параметр /u: в Windows 95 и более поздних версиях; /u:250 вызывает ошибку Invalid switch в MS-DOS 6.22 (и более ранних версиях). Кроме того, в Windows 95 максимальное значение равно /u:255, а не /u:250. Windows 95 принимает command.com /u:255, но command.com /u:256 не работает с сообщением об ошибке Parameter value not in allowed range - person Simon Kissane; 12.05.2021