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

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

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

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

Оагст.а", " Меввгв. Оагс1а", 2Ь, ЬС МАМЕ); В этом примере подходящий перевод для обозначения двух человек по фамилии "дагс1а" будет выбран в соответствии с правилами, применяемыми для форматир)ваиия имен. глава 11. интернационализация (!пгегпабопайхабоп) 229 0авеаввв Показывает номер версии и завершает работу программы. То же, что -г. То же, что -у. --тегЬсае --тега1ьл -я лшпЬег В поле пшпЬег назначается наибольшая ширина страницы Строки длиннее, чем попьаг разбиваются на несколько строк. То же, что -и. - хагь-и Ьег Создание двоичного файла млпо" из файла ".ро" Ф евятес всагеег.ро Эта команда создает двоичный файл с именем веахеех.

Давайте вернемся к нрииеру программы асехеех. с, приведенной в начале главы. Она начинается тремя вызовам и фун кци й: вее1оса1е(ЬС ЛЬЬ, "" ) и Ьапбеехебопагп(рлсклак,ЬОслькрха)т еехсбопаапгрлсклак); Макрос рлсклак определен как "веагеег", и ьосльцтк — как "цех/в)тахе/ 1оса1е". Чтобы программа могла найти таблицы перевода для, скажем, канадского диалекта английского языка, необходимо только скопировать двоичный файл в каталог пег/влаге/1оса1е/еп сл/аеагсег. Если текуший язык установлен в еп сл, то программа обнаружит там необходимые ей таблицы перевода сообшений, Для создания переводов сообшений на другие языки, нужно будет отредактировать файл ,ро, сделать из него другой двоичный файл .пю, и затем скопировать новый файл .ко в соответствуюший каталог. Утилита таедйте поддерживает опции командной строки, перечисленныс в таблице 11.4.

Таблица 11.4. Опции командной ст оки утилиты глз гп)г Оаввваив Выравнивает строки к границе укаэанного в поле пшпьаг количества байт. По умолчанию равно К То же, что -а. -а лишьаг -а|гепхепк=лшаЬег Выполняет проверки строк, зависимых от исходного текста программы. Это включает е себя проверку соответствия форматирующих последовательностей с символом "ъ", применяемых в языке С, а также проверку корректности заголовка файла. Когда перевод выводимых программой сообшений добавлен в файл .ро, то следующим шагом будет создание двоичного файла типа .

шо. Этот тип файлов используется программами для выполнения перевода. Двоичный файл вырабатывается из фэйла . ро утилитой гпвдйшс, например, такой командой; 230 Часть КЬ Использование Сборного Компилятора --сьесх -О ахкесвохтг — 61хесиску тт1квссскзг --Ье1р --по-ЬавЬ -с ЕЕ2в — оиирии-Е11и Е11в --виви1ви1св --вих1си --ивв-тикку --некЬове --чекв1сп Одввеввв Тоже, что -с. Названный в ахкиссску каталог добавляется к списку путей для поиска укаэанных в команде файлов.

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

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

Эта глава описывает процесс компоновки и применение утилит, которые используются для проверки и обработки объектных файлов, Объектный файл вырабатывается компилятором и имеет имя с суффиксом .о. Многие из описанных в этой главе утилит работают с набором объектных модулей, которые могут находиться как в отдельных файлах, так и в статической библиотеке (иначе называемой архивом), илв в разделяемой (динамической) библиотеке, ИМеются также утилиты, которые обрабатывают полностью скомпонованные и готовые к запуску исполняемые файлы. Объектные файлы и библиотеки При компоновке объектных модулей в готовую к запуску программу компоновшик может использовать как модули из отдельных файлов в каталоге, так и модули, храняшиеся в статической или динамической (разделяемой) библиотеке.

Отдельная компоновочная операция может использовать объектные модули из всех трех типов расположения, как это часто и происходит. Объектные файлы в каталоге диска Простейший способ компоновки программы — ее компиляция в объектные файлы, и зятем — указание этих файлов компоновшику в командной строке. Это прекрасно работает, когда объектные модули используются при компоновке одной или двух программ. Глава 12. Использование библиотек и способы компоновки 233 Например, программа па языке С состоит из исходных файлов вакп.

с, 1п1ее. с, сие1ее. с и депврги. с. С помощью следующего набора команд исходные файлы компилируются в объектные, которые затем компонуются в готовую к запуску про~рамму с именем вр1поинз 3 дсс -с аа1п.с -о аа1п.о 3 дсс -с 1п1ес.с -о кп1ес.о 3 дсс -с оис1ес.с -о оис1ес.о Н дсс -с деперги.с -о депврги.о Н дсс аа1п.о 1пкес.о оис1ес.о деперги.о -о вркпоис После успешного выполнения этой серии команд иа диске остается четыре объекшых файла и один исполняемый.

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

Она также имеет другое кивание — архив. Библиотека создается и обслуживается утилитой аг. Имена арканов обычно имеют префикс 11Ь и суффикс (расширение) . а. Следующий набор гаманд компилирует три исходных файла в объектные и сохраняет копии полученных объектных файлов в библиотеке с именем 11Ьвр1п.а. Затем программа-комннновшик, используя объектный файл программы аа1п. о и содержимое библиопкн, собирает готовую к запуску программу вркппег: 3 дсс -с кп1ег.с оис1ес.с депврги.с Н аг -г 11Ьер1п.а кп1ес.о оис1ес.о депарги.о й дсс аа1п.с 11Ьерьп.а -о ернппег Первая команда дсс вырабатывает три объектных файла, которые помещаются нстатнческую библиотеку командой аг. Последняя команда компилируетаа1п,с нсбъектиый файл аакп.

о и затем задействует компоновщик. Компоновщик считыннет содержимое библиотеки 11Ьвр1п.а и пытается разрешить имеющиеся в нн1в.о внешние вызовы функций и обращения к данным. Содержащийся в бибннотеке 11Ьвр1п. а модуль включается в готовую программу только в том случае, кнн в нем находится функция ыли данные, адресуемые из уже используемого в комюнонке модуля. При компоновке программы с библиотекой вырабатывается исполннемый файл меньшего размера, чем при компоновке с отдельными объектными 234 Часть[и.

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

Эти опции применяют для ускорения работы прв поддержке больших библиотек, когда в них вносятся многочисленные изменения. Список не обновляется до тех пор, пока не будут сделаны все модификации. Для создания новых или обновления уже имеющихся списков используется утилита гап11Ъ. Например, в следующей паре команд вначале применяется утилита аг с опцией -ц, чтобы быстро присоединить файлы к архиву 11Ьврфп. а без обновления индексного списка библиотеки. Затем утилита гап11Ь обновляет список объектов этой библиотеки, она приводит список в соответствие с текущим содержаниен архива: ь аг -ч 11Ьвр1п.а вюпдп1.о всгор.о К1Ьгдг.о 9 гап11Ь 11Ьвр1п.а Расположение модулей в библиотеке может иметь определенное значение.

Если один и тот же программный символ определен в нескольких модулях, то компоновщик сможет обнаружить и включить в программу только первый из них. Кроме того, в архиве может находиться несколько версий одного модуля. И, опять же, компоновшик включит в готовую программу тот модуль, который будет найден первым.

Чтобы изменить порядок расположения уже присутствуюших в архиве модулей и чтобы добавить в него новые используются опции утилиты аг. Команда для запуска утилиты аг имеет следующий формат: аг [орсзопв] [ровзсаоппате] [соипс] агсдауе оЬУесскз1е [оЬУессгз1е ...] Команда аг относится к старейшим утилитам [)п]х и ее синтаксис схож с синтаксисом других традиционных утилит, таких как еаг. В начале списка параметров команды ставятся флаги опций, при этом буквы опций группируются вместе, без пробелов между ними, опции могут быть с начальным дефисом или без него. Необязательные поля рова езоппате и оопп с присутствуют в команде только тогда, когда установлены использующие их опции.

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

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

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

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