Страница 14 из 69
некоторых сложных программах интерфейс программной строки являет-
ся единственным путем сделать что-то углубленное. Например, если
ваши программы Турбо Си включают встроенный ассемблеровский код,
то вам нужно использовать версию Турбо Си (ТСС), работающую с ко-
мандной строкой, а не интегрированную версию TC.
ТСС компилирует исходные файлы Си и связывает их вместе в
выполняемый файл. TCC работает аналогично команде СС системы
UNIX. ТСС также будет вызывать ТASM для ассемблирования исходных
.ASM-файлов. Заметим, что для выполнения только компиляции вам
нужно использовать в командной строке опцию -с.
Командная строка ТСС.
-----------------------------------------------------------------
Для вызова Турбо Си из командной строки в ответ на приглаше-
ние DOS введите tcc с сопровождением набора аргументов командной
строки. Аргументы командной строки включают опции компилятора и
компоновщика, а также имена файлов. Основной формат командной
строки следующий:
tcc [режим режим режим ... ] имяфайла имяфайла ...
Опции компилятора и компоновщика в командной строке.
-----------------------------------------------------------------
Каждой опции командной строки предшествует тире (-). Опции
отделяются от команды tcc и последующих имен файлов по крайней
мере одним пробелом. Опцию можно явно выключить в командной стро-
ке, если указать после нее тире (например, -K- отменяет опцию
unsigned chars). Опции командной строки Турбо Си описаны в прило-
жении С Reference Guide.
- 111,112 -
Имена файлов в командной строке.
----------------------------------------------------------------
После списка опций компилятора и компоновщика введите в
командной строке имена файлов.
Компилятор компилирует файлы в соответствии со следующим
набором правил:
имяфайла компилируется имяфайла.с
имяфайла.с компилируется имяфайла.с
имяфайла.xyz компилируется имяфайла.xyz
имяфайла.obj включается в качестве объектного файла
при компоновке
имяфайла.lib включается в качестве библиотеки при
компоновке
имяфайла.asm вызывает TASM для ассемблирования в .OBJ.
Затем компилятор вызовет компоновщик и снабдит его именами
соответствующего стартового файла Си и стандартных библиотек Си.
Выполняемый файл.
-----------------------------------------------------------------
Обычно компилятор создает имя выполняемого файла по имени
первого исходного или объектного файла, заданного в командной
строке. Выполняемой программе присваивается это первое имя файла
с расширением .EXE.
Если вы хотите задать отличное имя файла, то используйте оп-
цию -e. После команды tcc, перед любыми именами файлов, введите -
e, непосредственно сопровождая именем, которое вы хотите присво-
ить выполняемому файлу (ни одного пробела не должно быть между -e
и именем файла).
Некоторые примеры командных строк.
----------------------------------------------------------------
Следующий пример иллюстрирует соответствующий синтаксис для
вызова Турбо Си из командной строки DOS:
- 113,114 -
tcc -IB:\include -LB:\lib -etest start.c body.obj end
По этой команде tcc вызывает Турбо Си на запрос DOS. Турбо
Си затем интерпретирует режимы командной строки следующим обра-
зом:
- включаемый каталог - это B:\INCLUDE (-IB:\include).
- библиотеки - это B:\LIB каталог (-LB:\lib ).
- выполняемый результат будет помещен в файл с именем
TEST.EXE (-etest).
Турбо Си интерпретирует перечисленные имена файлов, считая,
что программа состоит из:
- исходного файла START.C, подлежащего компиляции
- объектного файла BODY.OBJ, включаемого при компоновке
- еще одного исходного файла END.C, подлежащего компиляции.
Рассмотрим другой пример командной строки Турбо Си для
времени компиляции:
tcc -IB:\include -LB:\lib2 -mm -C -K s1 s2.c z.asm mylib.lib
Эта командная строка времени компиляции указывает Турбо Си:
- искать включаемые файлы в каталоге B:\INCLUDE
(-IB:\include)
- искать библиотеки в каталоге B:\LIB2 (-LB:\lib2)
- использовать среднюю модель памяти (-mm)
- разрешить вложенные комментарии (-C)
- сделать chars беззнаковыми (-К)
Турбо Си интерпретирует перечисленные имена файлов следующим
образом:
- исходные файлы S1.C и S2.C должны компилироваться;
- файл Z.ASM должен ассемблироваться (используя TASM);
- выполняемый файл будет назван S1.EXE;
- библиотечный файл MYLIB.LIB будет подключен при компоновке
- 115,116 -
Файл TURBOC.CFG
-----------------------------------------------------------------
В дополнение к опциям, заданным в командной строке, вы може-
те установить список опций в файле конфигурации TURBOC.CFG. В
этом файле опции указываются в виде, соответствующем вводу с ко-
мандной строки.
Если вы не хотите пpи использовании ТСС вводить в командной
стpоке паpаметpы, то можете воспользоваться установками в файле
TURBOC.CFG, в пpотивном случае вы можете указать их в командном
файле и не использовать файл TURBOC.CFG.
Вы можете создавать файл TURBOC.CFG любым стандартным редак-
тором ASCII или текстовым процессором (таким, как редактор Турбо
в интегрированной версии). Опции (разделенные пробелами) можно
указывать в одной строке или записывать списком в нескольких
строках. Позже, при компиляции программы с помощью командной
строки, Турбо Си использует опции TURBOC.CFG, в дополнение к име-
ющимся в командной строке.
При загрузке ТСС он ищет файл TURBOC.CFG в текущем каталоге.
Если его там нет, и если вы работаете в DOS 3.0 и выше, тогда
просматривается еще и стартовый каталог (где находится TCC.EXE)
Заметим, что этот файл конфигурации отличается от TCCONFIG.TC,
который является файлом конфигурации по умолчанию для интегриро-
ванной версии.
Опции, заданные в командной строке, отменяют одноименные оп-
ции, заданные в TURBOC.CFG, что является немаловажным свойством.
Если, например, ваш файл конфигурации содержит некоторые опции,
среди которых находится -a (которую вы хотите отменить), доста-
точно указать в командной строке опцию -a- и использовать файл
конфигурации без изменения.
Поясним комбинирование и отмену опций командной строки и
TURBOC.CFG. Концептуально список опций файла TURBOC.CFG разбива-
ется на две части:
- паpаметpы -I и -L
- все дpугие паpаметpы в файле.
В некотоpых случаях паpаметpы командной стpоки пpосматpива-
- 117,118 -
ются слева напpаво, действует следующее пpавило:
- для некотоpых паpаметpов, котоpыми не являются паpаметpы
-I и -L, дублиpование спpава аннулиpует те же паpаметpы слева
(таким обpазом пеpеключатель Off спpава аннулиpует пеpеключатель
On слева).
- паpаметpы -I и -L слева, однако, бывают случаи, когда они
пеpеносятся впpаво.
Когда паpаметpы из файла конфигуpации комбиниpуются с
паpаметpами командной стpоки, паpаметpы -I и -L из TURBO.CFG по-
мещаются в пpавой части командной стpоки, а остальные паpаметpы -
в левой части командной стpоки сpазу же после команды tcc.
Таким обpазом, так как командная стpока и TURBOC.CFG комби-