Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорная техника Сторожок / MPLAB_C30_Руководство пользователя.pdf
Скачиваний:
161
Добавлен:
20.02.2016
Размер:
1.26 Mб
Скачать
© 2008 Microchip Technology Inc.

Глава 3. Использование компилятора в командной строке

ТАБЛИЦА 3-10. (ПРОД-Е) ОПЦИИ МАШИННО-НЕЗАВИСИМОЙ ОПТИМИЗАЦИИ

Опция

 

 

Описание

 

 

 

 

-fno-inline

 

 

Не обращать внимание на ключевое слово inline. Обычно

 

 

 

эта опция используется, чтобы запретить компилятору

 

 

 

встраивание любых inline функций. Если оптимизация не

 

 

 

разрешена, никакие функции не могут быть встроены.

 

 

 

-fomit-frame-pointer

 

Не хранить указатель фрейма в регистре для функций,

 

 

 

которым он не нужен. Это помогает избежать команд

 

 

 

сохранения, установки и восстановления указателей

 

 

 

фреймов, а также делает дополнительные регистры

 

 

 

доступными во многих функциях.

 

 

 

-foptimize-sibling-

 

Оптимизировать родственные (sibling) и хвостовые (tail)

calls

 

 

рекурсивные вызовы.

.

 

 

 

A

 

3.5.7. Опции для управления препроцессором

Следующие опции управляют препроцессором компилятора.

ТАБЛИЦА 3-11. ОПЦИИ ПРЕПРОЦЕССОРА

 

 

 

 

 

Опция

 

 

Описание

 

 

 

-Aquestion (answer)

 

Назначает ответ answer для вопроса question, в случае

 

 

 

если он проверяется условиями препроцессора

 

 

 

#if #question (answer). Опция -A отменяет стандартные

 

 

 

назначения, которые обычно описывают целевую машину.

 

 

 

Wilson

 

 

 

 

Например прототип функции main может быть объявлен как:

 

 

 

#if #environ(freestanding)

 

 

 

int main(void);

 

 

 

 

#else

 

 

 

 

int main(int argc, char *argv[]);

 

 

by

 

 

 

 

#endif

 

 

 

 

Опция командной строки -A затем может быть использована

 

 

 

для выбора между двумя прототипами. Например, для

 

 

 

выбора первого из двух, может быть использована

 

 

 

следующая опция командной строки:

 

 

 

-Aenviron (freestanding)

 

 

 

 

-A -predic

=answer

 

Отменяет назначение с предикатом predicate и ответом

 

 

 

answer.

 

 

 

 

-A predicate =answer

 

Создание назначения с предикатом predicate и ответом

 

 

 

answer. Эта форма предпочтительней старой формы

 

 

 

-A predicate(answer), которая продолжает

 

 

 

поддерживаться, поскольку не использует специальные

 

 

 

символы оболочки.

 

 

 

 

 

-C

 

 

Предписание препроцессору не избавляться от

 

 

 

комментариев. Используется с опцией -E.

 

 

 

 

-dD

 

 

Предписание препроцессору не удалять макроопределения в

Translated

 

выходном файле в их реальной последовательности.

-Dmacro

 

 

Определение макро как macro=’1’

 

 

 

 

-Dmacro=defn

 

 

Определение макро как macro=’defn’. Все вхождения -D

 

 

 

в командной строке обрабатываются до обработки опций -U

 

 

 

 

-dM

 

 

Предписание препроцессору вывести только список

 

 

 

макроопределений, которые действуют в конце

 

 

 

препроцессирования. Используется с опцией -E.

 

 

 

 

-dN

 

 

Аналогична -dD, за исключением того, что опускаются

 

 

 

аргументы и содержание макро. Выводятся только

 

 

 

#define name.

 

 

 

 

 

 

DS51284H(ru) стр. 3-19

16-битовый компилятор Си. Руководство

ТАБЛИЦА 3-11. (ПРОД-Е) ОПЦИИ ПРЕПРОЦЕССОРА

 

Опция

 

Описание

 

 

 

 

-fno-show-column

Не выводить номера колонок в диагностических сообщениях.

 

 

Это может быть необходимо, когда диагностика выдается

 

 

программой, которая не понимает номера колонок, такой как

 

 

dejagnu.

 

 

 

 

 

-H

Выводить имя каждого использованного файла заголовка

 

 

вдобавок к обычному выводу.

 

 

 

 

-I-

Любые каталоги, определенные с опцией -I до опции -I-

 

 

 

.

 

 

используются для поиска только файлов заданных

 

 

директивой #include "file", но не для поиска файлов,

 

 

заданных #include <file>.

 

 

Если дополнительные директории определяются опцией -I

 

 

после опции -I-, то ониA

используются для поиска всех

 

 

Wilson

 

 

 

файлов заданных директивами #include. (Обычно все -I

 

 

директории используются таким способом.) Кроме того,

 

 

опция -I- запрещает использование текущего каталога (т.е.

 

 

того, откуда берется текущий входной файл) как первого

 

 

каталога для поиска файлов по #include "file". Нет

 

 

способа аннулировать этот эффект -I-. С помощью опции

 

 

-I. вы можете определить для поиска директорию, которая

 

 

была текущей при вызове компилятора. Это не точно то же

 

 

самое, что препроцессор делает по умолчанию, но часто

 

 

этого вполне достаточно.

 

 

-I- не запрещает использования стандартных системных

 

 

by

 

 

 

каталогов для файлов заголовка. Т.е. опции -I- и -nostdinc

 

 

— независимы.

 

 

-Idir

Добавить каталог dir в начало списка директорий для поиска

 

 

файлов заголовка. Это может быть использовано, чтобы

 

Translated

аннулировать системный файл заголовка, заменяющий вашу

 

пригодных для использования при просмотре основного

 

 

собственную версию, поскольку в этих директориях поиск

 

 

будет производиться перед поиском в директориях

 

 

системных файлов заголовка. Если Вы используете более,

 

 

чем одну опцию -I, директории будут сканироваться в

 

 

порядке слева направо, стандартные системные директории

 

 

будут проверены после.

 

 

-idirafter dir

Добавить каталог dir ко второму маршруту поиска

 

 

включаемых файлов. Поиск в каталогах второго маршрута

 

 

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

 

 

одном из каталогов в главном маршруте включения (т.е. в

 

 

том, к которому добавляет каталоги опция -I).

 

 

 

 

-im cros file

Перед обработкой обычного входного файла обработать

 

 

заданный именем file файл как входной, без выдачи

 

 

выходного результата. Т.к. выходной результат обработки

 

 

отсутствует, то единственным эффектом опции

 

 

-imacros file будет создание макроопределений,

 

 

входного файла.

 

 

 

Любые -D и -U опции командной строки всегда

 

 

обрабатываются перед -imacros file, независимо от

 

 

последовательности, в которой они записаны. Все опции

 

 

-include и -imacros обрабатываются в том порядке, в

 

 

котором они записаны.

 

 

 

 

 

-include file

Обработать файл как входной перед обработкой обычного

 

 

входного файла. Реально содержание файла компилируется

 

 

первым. Любые -D и -U опции командной строки всегда

 

 

обрабатываются перед -include file, независимо от

 

 

последовательности в которой они записаны. Все опции

 

 

-include и -imacros обрабатываются в том порядке, в

 

 

котором они записаны.

 

 

 

 

 

 

 

 

 

 

 

 

 

DS51284H(ru) стр. 3-20

© 2008 Microchip Technology Inc.

Глава 3. Использование компилятора в командной строке

ТАБЛИЦА 3-11. (ПРОД-Е) ОПЦИИ ПРЕПРОЦЕССОРА

Опция

 

Описание

 

 

 

-iprefix prefix

 

Определить prefix как префикс для последующих опций

 

 

-iwithprefix

 

 

 

-isystem dir

 

Добавить каталог в начало второго маршрута поиска

 

 

включаемых файлов, пометив его как системный каталог,

 

 

чтобы обеспечить ему тот же специальный режим обработки,

 

 

который применяется к стандартным системным

 

 

директориям.

 

 

 

-iwithprefix dir

 

.

 

Добавить каталог ко второму маршруту поиска включаемых

 

 

файлов. Имя каталога получается конкатенацией префикса и

 

 

dir, где префикс определялся предварительно опцией

 

 

-iprefix. Если префикс еще не определен, по умолчанию

 

 

используется каталог,Aсодержащий установленные

 

 

компоненты компилятора.

-iwithprefixbefore dir

 

Добавить каталог ко основному маршруту поиска

 

 

включаемых файлов. Имя каталога получается

 

 

конкатенацией префикса и dir, по аналогии с опцией

 

 

-iwithprefix.

 

 

 

-M

 

Заставить препроцессор выводить пригодные для make

 

 

правила, описывающие зависимости каждого объектного

 

 

файла. Для каждого исходного файла препроцессор выводит

 

 

одно make-правило, чья цель — имя объектного файла для

 

 

этого исходного файла и чьими зависимостями являются все

 

 

#includeWilsonзаголовочные файлы, которые он использует. Это

 

by

 

 

правило может быть одиночной строкой или может быть

 

 

продолжено с помощью символа перехода на новую строку

 

 

‘\’, если она длинная. Список правил выдается в

 

 

стандартный вывод вместо результатов препроцессорной

Translated

 

обработки программы на Cи.

 

-M подразумевает -E (см. п. 3.5.2. «Опции для управления

 

 

 

 

типом результатов»)

 

 

 

-MD

 

Опция аналогична -M, но информация о зависимостях

 

 

выдается в файл и компиляция продолжается. Файлу с

 

 

информацией о зависимостях дается имя входного файла и

 

 

расширение .d

 

 

 

-MF file

 

Когда используется с -M или -MM, определяет файл для

 

 

записи зависимостей. Если опция -MF не задана,

 

 

препроцессор пишет правила туда же, куда он должен

 

 

выдавать результаты препроцессорной обработки.

 

 

Когда используется с драйверными опциями -MD или -MMD,

 

 

-MF меняет принятый по умолчанию выходной файл

 

 

зависимостей.

 

 

 

-MG

 

Обрабатывать пропущенные файлы заголовка как

 

 

сгенерированные файлы и полагать, что они находятся в том

 

 

же каталоге, что и исходный файл. Если задана опция -MG, то

 

 

-M или -MM также должна быть задана. -MG не

 

 

поддерживается с опциями -MD или -MMD.

 

 

 

-MM

 

Подобна -M, но рассматриваются только пользовательские

 

 

файлы заголовков, включенные по #include “file.

 

 

Системные файлы заголовков, включенные по

 

 

#include <file>, опускаются.

 

 

 

-MMD

 

Подобна -MD за исключением того, что рассматриваются

 

 

только пользовательские файлы заголовков, а не системные.

 

 

 

© 2008 Microchip Technology Inc.

DS51284H(ru) стр. 3-21

16-битовый компилятор Си. Руководство

ТАБЛИЦА 3-11. (ПРОД-Е) ОПЦИИ ПРЕПРОЦЕССОРА

Опция

 

 

 

Описание

 

 

 

-MP

 

Добавлять ложную цель для каждой зависимости, кроме

 

 

основного файла, чтобы каждый зависел не от чего. Это

 

 

бесполезное правило позволяет устранять ошибки, которые

 

 

дает make, если вы удаляете файлы заголовка не внося

 

 

соответствующих изменений в make-файл.

 

 

Вот типичный выход:

 

 

 

 

test.o: test.c test.h

 

 

test.h:

 

 

 

 

 

 

 

-MQ

 

Подобна -MT, но любые

.

 

символы для make заключаются в

 

 

одиночные кавычки.

A

 

 

 

 

 

 

 

-MQ ‘$(objpfx)foo.o’ дает $$(objpfx)foo.o: foo.c

 

 

Цель по умолчанию берется в кавычки автоматически, так,

 

 

Wilson

 

 

 

 

как если бы она была задана с -MQ.

-MT target

 

Меняет цель правила, выданного при генерации зависимости.

 

 

По умолчанию препроцессор берет имя основного входного

 

 

файла, включая путь, удаляет суффикс имени файла, такой

 

 

как .c и присоединяет обычный для платформы суффикс

 

 

объектного файла. Результат и будет целью.

 

 

Опция -MT устанавливает цель в точном соответствии с

 

 

заданной вами строкой. Если нужно несколько целей, вы

 

 

можете задать их одним аргументом -MT или использовать

 

 

несколько опций -MT. Например:

 

 

-MT ‘$(objpfx)foo.o’ может дать

 

by

 

 

 

 

$$(objpfx)foo.o: foo.c

-nostdinc

 

Не искать файлы заголовка в стандартных системных

 

 

каталогах. Использовать для поиска только каталоги,

 

 

заданные с помощью опции -I (и текущий каталог, если

Translated

 

подходит). Подробнее об опции -I см. п. 3.5.10. «Опции для

 

поиска в каталогах»

 

 

 

 

 

 

 

 

Используя -nostdinc и -I- можно ограничить маршрут

 

 

поиска включаемых файлов только теми каталогами, которые

 

 

заданы явно

 

 

 

 

 

-P

 

Запретить препроцессору генерацию директив #line.

 

 

Используется с опцией -E (см. п. 3.5.2. «Опции для

 

 

управления типом результатов»)

 

 

 

-trigraphs

 

Включить поддержку триграфов ANSI Си. Опция -ansi дает

 

 

тот же эффект.

 

 

 

 

 

-Umacro

 

Отменить определение макроса macro. Опция -U

 

 

определяется после всех опций -D, но перед опциями

 

 

-include и -imacros.

 

 

 

 

-undef

 

Не предопределять любые нестандартные макросы (включая

 

 

флаги архитектуры)

 

 

 

 

 

 

 

3.5.8. Опции для ассемблера

Следующие опции управляют работой ассемблера.

ТАБЛИЦА 3-12. ОПЦИИ ДЛЯ АССЕМБЛЕРА

Опция

Описание

 

 

-Wa,option

Передать опцию option ассемблеру. Если option содержит

 

запятые, она разбивается этими запятыми на несколько

 

опций.

 

 

DS51284H(ru) стр. 3-22

© 2008 Microchip Technology Inc.

Соседние файлы в папке Микропроцессорная техника Сторожок