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

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

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

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

Его можно преобразовывать для того, чтобы "пробиваться" через исключения, или для ведения записей об ошибках в файле. Сообщение, производимое в рассмотренном нами примере, будет выглядеть примерно так: Глава а. Препроцессор срр 75 Г11е: Нвтзьп!с.с папе: В22 уипсг1оп: Ьавпсоеп таете 1в ап вггог Ьеге Временное удаление части исходною кода Во время разработки программного обеспечения, зачастую возникает потребность в удалении блоков кода таким образом, чтобы позднее, если понадобится, их можно было бы восстановить. Код можно просто закомментировать, но зто может вызвать проблемь!, потому что в языке С комментарии не могут быть вложенными один в другой. А ведь в исключаемом из обработки коде может находиться какое-то количество комментариев, которые в таком случае нужно убирать.

Чистый и безопасный способ исключения кода дает применение директив йай примерио следующим образом: $1г О /* Закрьгваевгвй участок кода */ аеас/г Такой способ позволяет не только свободно обращаться с комментариями, но и вполне целенаправленно убирать из области действия препроцессора тот или иной участок кода. Создание компоновочных файлов (аа1ей! ез) Препроцессор можно использовать для чтения исходного файла и создания строк олределения завнсимостей, передаваемых в компоновочный файл (ияи та/ге-файл, англ. "гпайей!е"). Для примера, следущая команда использует опцию -Е для передачи указания компилятору вызвать препроцессор и затем остановиться без выполнения компиляции и компоновки (!!паяй).

Опция -м указывает препроцессору вьщать полную строку действуюпаих зависимостей: яес -В -И Сгьск.с Исходный файл сг1с)с.с содержит установки $1пс1ибе для системного заголовочного файла <всМо. Ь> и локального заголовочного файла "Ьаггоег. Ь", однако список зависимостей включает не только зти файлы, но и все файлы, в свою очередь включаемые ими. результирующая строка зависимостей примет такой вид: Гг1оЕ.о: Сг1сХ.с /ивг/1пс1иое/веста.Ь 1 /ивг/Ьпс1иде/Веасигев.Ь Х /ивг/1пс1иде/аув/сйевв.Ь /ивг/1пс1иое/спи/всиьв.Ь 1 /ивг/11Ыдсс-11Ы 13аб-геаЬес — 11пих/2. 96/1пс1ийе/вс осе г. Ь /ивг/1пс1иде/Ьагв/Сурев.Ь 1 /ивг/1пстиое/Ььев/рспгеасгурев.Ь 1 /ивг/гпс1иое/Ьгев/испей.Ь 1 /ивг/1пстиое/11Ь1о.Ь 1 /ивт/1пс1иае/11Ь1о.Ь /иег/апс1ийе/ я сопг1р.Ь 'х /ивг/1пс1иое/испат.Ь Х 7б Часть П.

Использование Сборного Компилятора /ивт/1ттс1ийе/Ььев/испат.Ь /иве/1пс1ийе/доспи.Ь Х /ивт/11Ь/дсс-11Ь/1388-тейиае-11пих/2.96/1пс1ийе/всйахд.Ь 1 /ивт/1пс1ийе/Ьгсв/вей1о 11ш. Ь Ьаттои. Ь Как разъясняется в приложении Г, опции -мВ, -ММО, -му, -мП, -мр, -ма и -мт могут использоваться для создания зависимостей другими способами и в другом формате, отличном от применяемого при опции -м.

Примеры использования этих опций для создания компоновочных файлов можно найти в главе 14. Опции командной строки и переменные окружения Существует набор опций командной строки дсс, определяющих способ действия препроцессора. Они приводятся в следующем списке и подробно описываются в приложении Г. -А- --авветт -МР -В --йет1пе-масте --йерепйепсьев -Еьйепе -тргертосеввей -Н -мо -мт -по-11пе-сошшапйв --по-веапйатй-1пс1ийев -повейгпс -повсйгпе++ --ртертосевв --рт1пе-ш1вв1пд-т11е-йерепйепс1ев Далее следует список переменных окружения, которые могут быть использованы в тех инстукциях препроцессора, которые связаны с именами каталогов и путей доступа.

Переменные окружения описаны в приложении Б. С 1МСЫЛ)Е РАТН, СРАТН, СРЬЦЗ 1МСЪЦВЕ РАТН, ВЕРЕМВЕМСХЕЗ ОВТРВТ, Овтс 1мсъцре РАтн, ВВБРЕО Веремремс1ез -1 -1- -1й1татсех -1шастов 1ийе --1пс1ийе-Ьагхьет --1пе1ийе-й1тессоту --1пс1ийе-й1тесеоху-аесет --1пс1ийе-ртет1х --Хпс1ийе-и1ЕЬ-ртет1х --1пс1ийе-и1СЬ-ртет1х-атеее --1пе1ийе-и1СЬ-ртет1х-Ьееоте -1ртевьх -ьвувееш -1и1съртет1х -1иШьртетгхЬетоте -м -темир — спасе-1пс1ийев -стгдтарпв -В -ипйет --ипйет1пе-пасто --ивех-йерепйепеьев -мр --ит1ее-йерепйепс1ев --итгсе-ивет-йерепйепс1ев -Мвувееш-Ьеайехв -Мипйет -мипмпоип-рхадшав ава Кемаааиааи ареарамм аа еамае С в этой главе описываются команды и опции команд, используемые для компиляции программ, написанных на алгоритмическом языке С, в объектные файлы, готовые к запуску программы и библиотеки.

В главу также включено обгцее описание различных поддерживаемых в ОСС стандартов языка программирования С, а также описание всех уникальных для ОСС расширений языка С. В системах ()МХ оригинальный компилятор С называется са ("С Согпрйег"). От него произошло название оригинального компилятора С проекта О)ч(3, который был назван дсс ("О)ч'() С Согпрйег").

Этот акроним остался до сих пор, но теперь его значение изменилось. Сейчас "бСС" означает "О)ч!) Сотрйег Со)!ес()оп", что можно перевести как "сборный компилятор ОЬНУ' или как "набор компиляторов ОЬЛ)". Это произошло в результате принципиального расширения компилятора— включения в него дополнительных языков. Однако базовой структурой ОСС по-прежнему остается компилятор С. К счастью, структура языка С собственно основана на весьма низкоуровневых и довольно похожих на аппаратные действиях.

Это позволяет в верхнем уровне програмного обеспечения для компиляции кода надстраивать структуры компиляторов других языков на основе, поддерживающей язык С. Базовая компиляция В таблице 4.1 приводится список суффиксов имел файлов (иногда говорят "расширений имен файлов"), которые так или иначе связаны с компиляцией и компоновкой программ на языке С. Полный список распознаваемых ОСС суффиксов приведен в приложении Г. 78 Часть !!.

Использование Сборного Компилятора Таблица 4.1. Суффиксы имен файлов, связанные с языком С Статическая объектная библиотека (архив). Исходный код нв языке С, подлежащий обработке препроцессопом. Исходный код нв языке С заголовочного файла (Ьевбег 6)е). Исходный код на языке С, не подлежащий предобработке.

Файлы этого типа являются промежуточным продуктом компиляции. Объектный файл в формате, поддерживаемом компоновщиком (япхег). Файлы этого типа являются промежуточным продуктом компиляции. Ассемблерный код. Файлы этого типа являются проме:куточным продукгом компиляции. Разделяемая объекгная билистека. (онагеб оЬ)ес( ВЬа~у) Преобразование отдельного исходного файла в готовую к запуску программу Вот пример исходного кода простейшей программы ')те((о, июг(((": /* Ье11оиог1д.с */ «1пс1ибе <вело.Ь> 1пе ящ1п(1пс егдс,сЬег *агди[)) ( рггпсг("Ье11о, иог161пч)г гееигп(0)г ) Простейшим и самым прямым способом компиляции этой программы в готовую к запуску форму является следующий способ.

Сохранить этот исходный код в файле с именем Ье11омог1ст. с и подать такую команду: $ дсс Ье11оиог1б.с Проверив суффикс имени файла, компилятор определит, что указанный файл содержит исходный код. Согласно предопределенной по умолчанию последовательности действий ССС компилирует исходный файл в объектный, компонует его в готовый к запуску исполняемый файл и затем удаляет временный объектный файл. В команде не назначается нмя файла для вырабатываемой выполнимой версии программы, поэтому компилятор назовет файл по умолчанию а. оис и сохранит его в текущем каталоге. Ввод этого имени в командной строке вызовет запуск программы и вывод ею сообщения: В а.оис Ье11о, иог16 Можно использовать опцию -о для назначения имени файла готовой к запуску программы, вырабатываемого компилятором.

По следующей команде будет выработана выполнимая программа с именем Ьомбу: В дсс Ье11оиог1б.с -о Ьоиду Глава е. Компиляция пРограмм на языке С 79 Ввод этого имени программы в командной строке вызовет ее запуск и распечатает ее вывод: 3 Ьсиеу Ье11с, исг1а Переработка исходного файла в объектный модуль Опция -с указывает дсс скомпилировать исхолный код и оставить на диске объектный файл, пропуская этап компоновки объектного файла в готовую к запуску программу. В этом случае имя выводимого файла по умолчанию будет таким же, как имя исходного, но только с суффиксом .о.

Например„следующая команда выработает объектный файл с именем Ье11оиог16. о: Ф дсс -с Ъехтсисгта.с Возможно использование опции -о для переназначения имени вырабатываемого объектного файла. Ло следующей команде будет создан файл с именем ЬагшарЬ . о: 3 дсс -с Ье11смсг1д.с -с Ьагшпрц.о Для построения объектных библиотек илн просто, чтобы создать набор объектных файлов для их последующей компоновки, вы можете использовать одну команду для выработки объектных файлов из нескольких исходных. Ло следующей команде будут созданы объектные файлы с именами агд11вс. о, роп()ег. о и 11вс вогс .

о: 3 дсс -с агд11ас.с россет.с 11есеогс.с Преобразование нескольких исходных файлов в готовую к запуску программу ОСС выполняет компоновку автоматически даже при компиляции нескольких исходных файлов. К примеру, приведенный ниже исходный код сохранен в файле Ье11огааап. с и он вызывает функцию вауЬе11о(): /* Ье11смаьп.с */ тс16 еауце11с(тсггт) г 1пе ша1п (1пс агдс, сЬаг "агду() ) ( еауЬе11а(); геспгп(0)г ) далее — исходник функции вауЬе11о(), который находится в файле вауЬе11о. с: /* еауЬе11с.с *Г Ипс1псе <еед1с.

Ь> тсьа еауце11с() 80 Часть!1. Использование Сборного Компилятора ( рк1шсв("Ье11с, нск1ахш")г ) По следуюшей команде будет выполнена компиляция двух этих исходных файлов в объектные, компоновка их в готовую к запуску программу с именем Ье11о и, затем, удаление временных объектных файлов: В ясс Ье11сшегш.с веуце11с.с -с Ье11о Обработка исходного кода препроцессором Опция -Е указывает компилятору дсс запустить только препроцессор срр. Следующая команда выполнит лредобработку (ргергосезз1пя) исходного файла )зе11отток1с. с и выведет результат лредобработки на стандартное устройство вывода. В асс -Е Ье11снск1а.с Возможно использование опции -о для направления вывода предобработки кода в файл.

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

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

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

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