GCC - The Complete Reference (537669), страница 108
Текст из файла (страница 108)
Приложения Префиксы опций Все опции командной строки начинаются с символа дефиса "-" (пурпеп). Некоторые из опции в префиксе имеют два дефиса "--". Есть также опции, которые имеют специальное значение, они начинаются с "-а" или "-тт". Префикс "—" Традиционный способ обозначения опции в командной строке состоит в том, что в начале опции стоит один дефис "-" и английская буква сразу после него.
Более новая форма представления предполагает использование пары дефисов "--". Многие опции компилятора в списке поддерживают как старый (с одним дефисом), так и новый (с двумя дефисами) форматы представления, имеющие одинаковое значение. Например, традиционная форма опции для включения в генерируемый код отладочной информации имеет такой вид: То же самое действие имеет и следующая, более длинная опция: --оеьпд Префикс е-1и Буква ' й ' в начале опции определяет значение флага компиляции. Большая часть таких опций имеет два положения: установленное и отключенное.
Например, следующая опция устанавливает флаг, применяющий локальную оптимизацию "реерйо)е ор!!ш)хаг)оп", связанную с заменой инструкций: -хреерпо1е Так как флаг может иметь включенное и выключенное положение, каждая устанавливающая флаг опция может быть обращена. При этом используется то же имя опции, но с дополнительным префиксом "по-". В алфавитном списке такая форма опции, имеющая противоположное значение, будет называться обрагллой. Например: -Гпо-реерьо1е Почти все такие опции устанавливают состояние соответствующих флагов, присваивая им значение "истина" или "ложь".
Причем многие флаги имеют значение по умолчанию. Но имеются и некоторые исключения. Например, любая из следующих опций может быть применена лля указания области видимости переменных, объявляемых в разделе инициализации цикла йоес -ахов-всоре -хпо-хоп-яворе Однако по умолчанию область видимости переменных не задается.
В общем случае она зависит от стандарта, но оба варианта установки области видимости имеют разное значение для различных стандартов. Приложение Г. Опции командной строки компилятора ОСС 49 1 Каждая опция с префиксом "-й" может указываться в форме представления с двумя дефисами. Например, две следующие опции имеют олинаковое значение: -екает --кееь ПрЕфИКС н-Фн Опции с префиксом "-тт" используются лля указаний компилятору, связанных с генернрованием тех нли иных предупредительных сообщений.
Подобно флаговым опциям с префиксом "-й", этн опции могу| включать нли отключать вывод определенных предупреждений в зависимости от использования в начале опции дополнительного префикса "по-". Например, установка следующей опции (с префиксом "-тт" ) определяет вывод предупреждений в случае превышения допустимого колнчества аргументов прн вызове функций: -меекаак — ех~ха-акче Для подавления вывода таких сообщений следует применить обратную форму этой опции с префиксом "-гяпо- ч -нпо-кокжае-ехеха-акда Порядок следования опций Порядок следования опций может иметь важное значение.
Если в командной строке стоят две конфликтующие опцнн, то обычно действует вторая опция, замещая установки, сделанные первой опцией. Параметры командной строки считываются программой слева направо, и каждая опция последовательно устанавливает соответствующее значение нлн флаг (илн набор значений н Флагов). Поэтому любая установка, сделанная какой-либо опцней, может быть изменена последующими опциямн, стоящими в командной строке после нее.
Этот порядок применения опций дает немало удобств. Например, известно, что флаг оптимизации -оз устанавливает опцню -йхп1хпе-йипсехопв. Если вы хотите применить оптимизацию -оз н прн этом сохранить отключенным расширение вызовов функций подстановкой кода, то для этого вы можете поставить опции в таком порядке: -ОЗ -кпо-1п11пе-Йапескопа Типы файлов Компилятор определяет содержание файла по суффиксу его имени, в соответствнн со списком, представленным в таблице Е1.
Любой файл с неизвестным суффиксом воспринимается как входной файл компоновщика предназначаемой целевой машины и передается ему на этапе компоновки программы. Для отмены действия предустановленного значения суффнкса н указания типа отдельного входного файла используется опция -х. 492 Часть (Ч. Приложения Таблица Г.1, Распознаваемые 6СС суф иксы имен айлов Суффикс Содврлгимов Енв)ие Статическая библиотека, которая содержит один или более используемых при компоновке программы обьектных . о файлов. Она также имеет название архив.
Исходный код на языке С, который подлежит предобработке. Исходный бос(у файл на языке Яс(а. Содержит "тело" (т.е., код реализации) библиотечного модуля Ягта. Файл спецификации (эрес-файл) на языке Яда. Содержит объявления или переназначения объявлений модулей, как отдельных, так и в составе библиотек Яда. .ась .вав Исходный код на языке С++, подлежащий предобработке. .с .с++ .сс .ср .срр .схх .ставя Вырабатываемый при компиляции программ на языке дача файл класса, содержит выполнимый байтовый код (байт-код) Виртуальной Машины ./ауа.
Исходный код на языке Еогтгап, не требующий предобработки. Исходный код на языке Еог(гап, который подлежит предобработке. Заголовочный файл (Ьеабег Ые) на языке С, С++ или Овуес((уе-С, Исходный код на языке С, не требующий предобработки. Исходный код на языке С++, не требующий предобработки. Исходный файл на языке ./ауа. Исходный код на языке ОЦест)уе-С, который подлежит предобработке. Исходный код на языке Об)ес()уе-С, не требующий предобработки.
Двоичный файл с переводами строк для интернационализации программ. Объектный код соответствующего формата, поддерживаемого компоновщиком. Текстовый файл с переводами строк, которые применяются для интернационализации программ Исходный код на языке Еог(гап, который подлежит предобработке препроцессором ПЯТЕО~. Предназначаемый для предобработки код на языке ассемблера. Код на ассемблере, не требующий предобработки.
Динамическая библиотека (также называемая разделяемой). Содержит один или более объектных .о файлов с перемещаемой внутренней адресацией, которые компонуются к программе во время ее загрузки н выполнения. .с .сок .уоа .у .срр . 5атга .о .ро Файл с неизвестным суффиксом считается входным файлом компоновщика предназначаемой машины, он передается этому компоновщику на этапе компоновки объектного кода программы. <другие суфвихси> Алфавитный список опций Показывает номер версии компилятора и„затем, все поддерживаемые команды, которые могут запускаться на различных этапах компиляции и компоновки. При Приложение Г. Опции командной строки компилятора ОСС 493 этом никакие команды не выполняются.
Если используется только одна эта опция, то выводится номер версии компилятора. В сочетании с опцией --Ьв1р вьшает полный список поддерживаемых опций командной строки. Генерирует дополнительный профилирующий код в начале каждого основного блока (Ьаз!с Ыос)г) выполнимого кода. Профилирующая информация записывается каждый раз лри запуске основного блока. Записываемая информация включает в себя начальный адрес и имя функции, содержащей основной блок.
Если также применяется опция -д, то выводимая для каждого блока информация будет также включать имя исходного файла и номер начальной строки исходного кода каждого блока. Если в описании предназначаемой машины не указано другое имя файла, то эта информация записывается в файл с именем ЬЬ. опг. См. также опции -йрго111а-агов и -агаве-сочвгадв. Эта опция может применяться в другой форме: --рго511а-Ь1оокв. -А диеЯоп(ап5)луег) Рге Назначает ответ (угверждение, "аззегйоп") на указанный вопрос.
Действует аналогично следующей директиве: $1Г Вдиевехоп(апвнег) Опция может быть записана в форме --аввагс. См. также -д-. -А- Рге Отключает стандартные ответы (утверждения, аззегйопз) на вопросы, которые обычно применяются для описания предназначаемой (целевой) машины (гагйег). См. также -д. — ЗИ-злигп!пЯ5 То же, что и опция -на11. с, с++, оь!с — аП51 Тоже, что и -апв1. -дП51 с, с++, оь)с Эта опция сообщает компилятору о соответствии исходного кода стандарту АХЯ.
При этом не применяется никаких ограничений по отношению к коду, не конфликтующему прямым образом со стандартом. Это значит, что допускается применение расширений ОХ(). При компиляции программ на языке Сэта опция допускает применение Стандарта "150 С89". При компиляции программ на языке С++ при этой опции отключается поддержка всех расширений ОХ(), конфликтующих со Стандартом "130 С+-ь" Эта опция также устанавливает опции -аппо-авгв, -йпо-попапв1-Ьп11с1п, -сг1дгардв и -аппо-бо11агв-1п-Ывпг1Й1агв. Для языка С++ также дополнительно устанавливаются опции -5по-дпи-квуьгогдв и -Епо-попапв1-Ьи11с1пв. 494 Часть 1Ч. Приложения Эта опция определяет макрос втвхст ичвх, который предотвращает объявление в некоторых заголовочных файлах ()зеадег В!ез) функций или макросов, имена которых могут конфликтовать с именами компилируемой программы. Эта опция отключает ключевые слова расширения О)Ч() языка С: авш, куреох и тп1зпе.
Прн этом остаются доступными альтернативные формы этих ключевых слов: авш, куреох и хп1хпе Если требуется строгое ограничение на соответствие кода стандарту, то дополнительно к опции -апвх следует применять опцию -ребапктс. См. также опцию — са. Опция -апвз. может быть записана в форме --апв)..