Главная » Просмотр файлов » GCC - The Complete Reference

GCC - The Complete Reference (537669), страница 60

Файл №537669 GCC - The Complete Reference (GCC - The Complete Reference) 60 страницаGCC - The Complete Reference (537669) страница 602015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 60)

б представляет собой имя, определенное в самом утилите та)се, а переменная ненвент определена в самом п)а)(е-файле с помощью примерно такой строки: НЕЕВЕВТ=Нет)зьчоке 268 Часть!1Ь Внутренняя структура и окружение Результат обработки пта)ге-файла будет выглядеть следующим образом: есЬо НОМЕ ьв /Ьоше/агкиег номе ьв !Ьоае/агедаг есЬо СОМРХЬЕ.г 1в г77 -с СОМР1ЬЕ.Й ьв Е77 -с есдо НЕВВЕНт 1в Негвьзгоге НЕЕВЕЕт ьв Негььзгоге Каждый раз команда есЬо выводится в начале выводимой ею строки, поскольку по умолчанию для утилиты тва)ке установлено, что команда перед выполнением отображается на экране.

Правила суффиксов В таКе-файле можно назначать правила, которые будут распознавать типы Файлов по их суффиксам (расширениям) и автоматически транслировать один тип в другой. В следующем примере приведен гпа)ге-файл, который распознает суффиксы и определяет пару команд, которые транслируют файл с одним суффиксом в новый файл с назначенным ему другим суффиксом: а11: Ье11о.о Ье11о.в Ье11о.о: Ье11о.с Ье11о.в: Ье11о.с .ВПРР1ХЕБ: .о .с .в .с.о: рос -с Б< .с.вю дсс -Б Б< Приведенный компоновочный сценарий предназначен для создания двух целей: ье11о.

о и ье11о. в. Поскольку правила выработки этих целевых файлов не устанавливают команды, то распознаются три суффикса: . с, . о и . в. Правило для суффиксов . с и . о преобразовывает файл с суффиксом . с в файл с суффиксом .о. А правило для . с и . в — файл с суффиксом . с в файл с суффиксом . в. Специальный макрос Б< представляет собой ссылку на имя файла, используемого для создания цели. Результат выполнения рассмотренного тпа)ге-файла будет тем же, что и результат выполнения следующего компоновочного сценария: Ье11о.о: Ье11о.с рос -с Ье11а.с Ье11о.в: Ье11о.с ясс -Б Ье11о.с Правила суффиксов, как правило, действуют сложнее, чем показано в этом примере, тем не менее, их не приходится писать вручную.

В утилиту ма)ке встроено большое количество правил суффиксов, которых достаточно для того, чтобы от разработчика требовалось только указать команду, Глава (4. Утилиты п)аке и Ац(осоп( 269 Просмотр определений Существуют опции командной строки, которые позволяют просмотреть полный список макросов и определений правил суффиксов, поддерживаемых утилитой аа)се. Опция -р не мешает нормальному считыванию и выполнению гпаКе-файла, но при этом будут выводиться все назначенные макросы и действующие правила суффиксов. Для просмотра всего списка введите следующую команду: 3 паке -р ) аоге Для просмотра того же списка, но с запрещением на выполнение команд сценария выполните следующую команду: ь.папе -р -(( ( аоге При необходимости просмотра только встроенных определений утилиты аа)ге без вывода определений локального таКе-файла можно указать утилите аа)ге пустой файл для считывания: а аа)пе -р -г Уйет/пп11 ( аоге Как написать ваке-файл Если вы новичок в написании гпаКе-файлов, то лучше всего скопировать существующий файл и изменить его в соответствии со своими намерениями.

После несксльких правок вы поймете общий принцип их построения. Если необходимо изучить утилиту ай)ее в объеме, достаточном для написания таКе-файлов с нуля, придется потратить некоторое время на исследования и эксперименты. На самом деле это не гак сложно, как может показаться. Просто имеются некоторые особенности, которые могут сбивать с толку поначалу, пока вы не научитесь все делать правильно. Можно попробовать написать шаблон таКе-файла, который будет использоваться в качестве заготовки при написании каждого нового таКе-файла. Но, к сожалению, лхя сценариев компоновки нет универсальной формы, которая бы подошла для любого случая. Ниже приводится пример обобщенного таКе-файла, который компилирует две программы, написанные на языке С, и компонует их в готовый к запуску выполнимый файл; сс=ясс увоавыпоийу )пе11о Суъхпя=-Иа11 пп.: Ф(рдоов) 'поийу: )зоийу.с Ье) ьо: )те11о.с Ф(СС) Ф(оуъкоя) )пе11о.с -о )зе11о с1еап: га -г *.о га -г *.БО га -г *.а га -г Ф(ваоав) 270 Часть 1И.

Внутренняя структура и окружение Переменной сс присваивается значение доо, а переменной свгйьав — значение -УГа11. Список имен целей хранится в переменной виоаз. Представленный та1гефайл компилирует две программы одним и тем же способом. Но для одной из них используется встроенная команда, а для другой команда указывается явно; -Иа11 поеду.с -о поеду дсс -Юа11 Ье11о.с -о Ие11о Существует предопределенная "чистящая" цель о1еап, которую можно вызвать в любой момент лля удаления всех промежуточных файлов, созданных при выполнении компоновочного сценария. Текущий набор команд не оставляет на диске файлы .о, .

ео или . а, поэтому здесь чистка не нужна. Однако гла1ге-файлы растут по мере развития проекта и генерируют все возможные типы промежуточных файлов. В таком случае без удаления временных файлов не обойтись. По умолчанию утилита злаке пытается построить первую цель, найденную в гпайе-файле, но ее можно попросить построить любую цель, явно указав ее имя в командной строке, что показывает следующий пример; 3 алке с1еап Некоторую помощь можно получить и от компилятора. В главе 18 приведены примеры использования компилятора для формирования списка зависимостей, помешаемого в таКе-файл. Опции утилиты ва1е Таблица 14.1.

Опции командной проки утилиты ваке Указывает не перекомпоновывать файл независимо от его возраста и не перекомпоновывать другие файлы, основанные на зависимостях от этого файла. --алелеа-о1д=яшллале Предполагает, что указанный файл является новым. Также и все файлы, зависящие от указанного файла, должны быть перекомпонованы. Выполняет переход в указанный каталог перед поиском файлов для определения зависимостей. То же, что и -с. --алллее-пен 111аплле -С д1ллоеолу --дзклоьоку=дзллоеоху То же, что и -дльля а, Версий утилиты злаке столько же, сколько и версий 1Лч11Х.

Все они, по своей сути, одинаковы, но могут отличаться отдельными свойствами и характеристиками. Версия ОТч1О утилиты атаке привлекает тем, что она свободно распространяется а форме исходного кода. Она, несмотря на то, что содержит собственные расширения, пожалуй, лучше всего будет работать с компилятором ОСС в любой системе. В частности, если компилятор ОСС планируется создавать из исходного кода, то имеет смысл установить пакет Ь1пц111з, включающий пыЖе и несколько других утилит. Утилиты пакета Ьгпцгйз гарантированно совместимы с ОСС. Многие опции командной строки общие для всех версий утилиты тла1се.

Опции, поддерживаемые утилитой вга1се версии О1ч111, перечислены в таблице 14.1. Глава 24. Утилиты гпайе и Дц2осоп1 27 21 --аеьпдП 42едв] -агу-гпп епг1гопхепк-о геггсаев -1 112епете — 112есу12епете — Ье2р -1 аггеосогу — 1дпоге-еггогв -1пстиае-а1г д1гесгогу -5 Гпотлег) — 5оЬв1 лпхюег) --тпвс-рг1п -веер-до1пд Выводит информацию об обработке в форме, которую можно использовать для отладки ошибок гпаке-файла.

Если флаги не указаны, то выводится базовая отладочная информация. Значение параметра 12вд МОжет быть любой комбинацией следующих букв: в — выводит все типы отладочной информации. Зта опция выводит большие описания результатов. ь — выводит базовую отладочную информацию, включая список устаревших целей и данные об успешности выполнения команд.

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

у — выводит ту же информацию, что для опции ь, и дополнительно информацию о целях, которые не требуют выполнения команд. Холостой запуск. Указывает не выполнять никаких команд. Зта опция выводит все команды, которые были бы выполнены в случае, если бы это был не холостой запуск. Тоже, что и --ептг1гоптепг-очегг1аев. Переменные среды замещают переменные, определенные в таКе-файле. ТО жв, Чтс И с-412Е. Использует указанный файл в качестве гпаке-файла и отменяет поиск файла с именем веке112е или теке112е.

Выводит этот перечень опций. Выводит этот перечень опций. То же, что и --адпоге-еггогв, То же, что и --1по2пае-а1г. В нормальном режиме обработка завершается при первой неудаче компоновки цели, но при этой опции обработка не останавливается и переходит к созданию следующей цели. Поиск включаемых компоновщиком гпаке-файлов будет производиться в укаэанном каталоге.

То же, что и --зоьв. Указывает количество команд, которые могут выполняться одновременно. Если число не указано, утилита теве будет запускать максимально возможное количество команд. То же, что и --агу-гпп. То же, что и --веер-доапд. Указывает после возникновения ошибки обработать столько целей, сколько возможно. Файлы, имеющие зависимости от цели, которая не была создана, также создаваться не будут„но ошибка в одной зависимости не исключает возможность обработки остальных. 272 Часть П!. Внутренняя структура и окружение -1 [пихьзег] --1ааа-атегаде[ питЬег] --тпвхеее]е г11епате --теж-1аво[=пшяЬег] --пеи-111е=г11епете --по-Ьи11с1п-ги1ев — па-Ьи11С[п-твг1вЬ1ев --па-веер-да1пд --па-рг1пс-ахгессагу -а г[1епете --а1Й-г11е=г11впете --рг[пс-Овса-Ьвве --рг1пс-акгессагу -ЕнеС --гесап --вх1епс --всар --СаисЬ то же, что и --теж-1ааа.

то же, что и - -твх-1ааа. То же, что и --К[1е. Новые команды не будут запускаться на выполнение, если уже запущена по крайней мере одна команда, и средняя загрузка системы выше, чем указанное значение (число с плавающей точкой). Если число не указано, то максимальная загрузка не ограничена. Та же, что и --агу-тип. То же, что и --певшие-пеи. Отменяет встроенные правила и определения суффиксов, возможность назначения пользователем собственных правил и определений при этом остается. Исключает использование встроенных переменных, возможность назначения пользователем собственных переменных при этом остается.

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

Указывает не выполнять команды и не выводить никаких результатов кроме кода завершения. Код завершения 0 говорит о том, что все цели новые и при нормальном запуске таКе-файла компиляция не проводилась бы. Код завершения! указывает, что одну или несколько целей нужно перекомпилировать. Код завершения 2 говорит о наличии критической ошибки. То же, что и --в11епс. То же, что и --по-Ьих1С1п-ги1ев. То же, что и --по-Ьи11с[п-твг1вЬ1ев. То же, что и --агу-тип. То же, что и --в11епг.. То же, что и --вг.ар.

Подавляет обычный вывод строки команды при ее выполнении. Отменяет действие опции --кеер-до1пд. То же, что и --спись. Обновляет атрибуты времени целевых файлов для их соответствия последней версии, но при этом не выполняет команд для создания их новых версий. Глава 14. Утилиты ваКе и АцгосопГ 273 Овивввие Выводит информацию о версии утилиты ваке и завершает выполнение утилиты. -текв1ол Выводит информацию о версии и завершает выполнение утилиты.

Характеристики

Тип файла
DJVU-файл
Размер
6,08 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6289
Авторов
на СтудИзбе
315
Средний доход
с одного платного файла
Обучение Подробнее