GCC - The Complete Reference (537669), страница 3
Текст из файла (страница 3)
Она обладает уникальной способностью сохранять ровное настроение и отношение к работе при редактировании различных частей такой большой книги, как эта. Мы с Бартом Ридом (Вагг Кеег!) имеем совершенно разные взгляды на английский язык — его английский куда более читаемый и правильный, чем мой. Я также хочу поблагодарить Пола Гарланда (Раи! Оаг)апг!) за проверку технической корректности этой книги и за то, что он смело указывал те места, где фантазия вводила меня в противоречие фактам. Я весьма обязан Марго Мэйли (Магяо! Ма1еу) за то, что она вовремя возвращала мои ноги на землю, а руки на клавиатуру.
Для написания этой книги мне очень пригодилось понимание технологии работы компиляторов. Хочу поблагодарить Дэйва Роджерса (Оаие Кояегз) за то, что он много лет тому назад познакомил меня с языком программирования С и сделал наброски для написания мною своего компилятора этого языка. Также благодарю Рона Саудера (Воп Болг)ег) и Тревиса Митчела (Тгау!з Мйсйе1) за привлечение меня к участию в достаточно странных проектах, которые, однако, помогли мне проникнуть в скрытые закоулки и узкие места в обработке исходного языка и выработке объектного кода. И, возможно, более всех других я должен, пусть и слишком поздно, поблагсаарить покойного Фреда Льюиса (Ргег! (.етг!з) за то, что он открыл мне захватывающий мир компиляторов, ассемблеров и объектных компоновшиков.
Введение С ледует заметить, что нынешний подъем движения по созданию свободно распространяемых программ является наиболее важным обстоятельством на современном этапе применения вычислительной техники. Мы находимся в середине принципиального перехода от использования дорогого программного обеспечения, поддерживаемого жестоко конкурирующими корпорациями, к широкому выбору свободно распространяемых и бесплатно поддерживаемых программ, получатели которых могут использовать их для своих целей без каких-либо ограничений.
Если при этом учесть, что практически все свободно распространяемые программы компилируются в ОСС, то становится ясно, что компилятор ОСС является наиболее важной частью современного программного обеспечения во всем мире. Конечно, существует большое количество алгоритмических языков, используемых для создания свободно распространяемых программ. Но большая часть компиляторов этих языков написаны и скомпилированы с использованием ОСС. Так что, на том или ином уровне все свободно распространяемое программное обеспечение основывается на ОСС. Некоторые компании, занимающиеся разработкой программ, прекращают поддержку собственных компиляторов и вместо них используют ОСС.
Его всегда можно получить, это просто и бесплатно. К тому же расширение и поддержка ОСС не прекращается никогда. С добавлением в семейство ОСС языков Уага и Ада, область применения свободно распространяемого компилятора ОСС стала еще больше. Начиная с версии 3.1, количество компилируемых в нем языков достигло шести: С, с++, Оь)еспге-с, Гогггал, Хата и Ада. Пополнение семейства ОСС будет продолжаться и дальше. Вскоре, очевидно, будет добавлен язык СОВОЕ (после того как он будет обеспечен достаточной поддержкой). Пройденный путь Проект ОХ\3 был запущен в 1984 году в целях создания свободно распространяемой операционной системы. Основателем этого проекта стал Ричард Столмен (й)спагд ЯаИшап), он же является и автором первоначальной версии ОСС.
Введение 1 7 Начальный выпУск пеРвой тестовой версии ПСС вЂ” релиза 0.9, состоялся 22-го маРта 1987 года. ПеРваЯ действУющаа веРсия — 1.0 — появилась 23-го мая 1987 года. С тех поР вышло 108 Релизов до выпУска 3.2 от 5-го мая 2002 года, на котором и основываетсЯ настовщал книга. ПолУчается, что каждый новый выпуск ОСС выходил в среднем один раз в 1,7 месяца. Что в этой книге? Эта книга содержит необхолимую начальную инфомацию по применению ОСС разработчиками программного обеспечения и руководителями проектов. Здесь много полезных сведений и для тех, кто собирается принять участие в поддержке и развитии самого компилятора. Но главная идея, положенная в основу создания этого Руководства, — помощь читателю на этапах установки компилятора, его настройки и дальнейшего использовании для Разработки своих программ.
По любым мер.кам ССС вЂ” одиль Яавьиив дезэдма Ж эзОкооло эогожлг оогэоогзг оро~РдзгзхчэУзг системам, он содержит некоторые полезными свойства, которые пользователь может примени~ь только когда он точно знает, ка~г их использовать. Мы постарались дать вам достаточные представления о применейии многих именно таких особенностей компилятора ОСС. И в этом заключается главная цель настоящей книги.
Книга состоит из трех частей. Часть первая, "Свободно распространяемый компилятор" описывает замыслы, положенные в основу ПСС, и содержит инструкции для его получения и установки в вашей системе, Часть вторая, "Использование Сборного Компилятора" содержит подробные ийструкции по использованию ОСС. Эта часть книги состоит из глав, каждая из котс>рых посвящена отдельному языку программирования и содержит примеРы прогРамм.
Специально отведенные главы описывают препроцессор и способы объединеция в одной программе различных частей, написанных на разных языках программирования. Часть третья, "Внутренняя структура и окружение" состоит из глав, посвященных компоновке, отладке и перекрестной компиляции программ, сценарияМ компоновки и ассемблеру ОХ13. В этой части также содержатся сведения, раскрывающие тонкости взаимодействия верхнего и нижнего уровней компилятора. ОСС вЂ” чемпион мира по количествУ доступных опций командной строки. Опции в алфавитном порядке представлены в приложении Г. Приложение Б посвящено их взаимной совместимости. Глава 21 содержит дополнительные опции команд, ориентированные на выработку машинного кода для специфического оборудования, поддерживаемого компилятором.
Ниже пРелставлено кРаткое описание каждой главы для того, чтобы дать более полное представление о темах, раскрываемЬ1х в книге ° Глава 1 ЯвлЯетсЯ общим введением в замысел ОСС, она содержит список частей компилятора и поддерживаемых им извеков ° Глава 2 описывает пРоцедУРы полУче1зия и инсталляции ССС. е Глава 3 описывает РаботУ препроцессора и способы его использования для обработки исходного кода программ. 18 Введение ° Глава 4 содержит примеры компиляции и компоновки программ, написанных на языке С.
Глава 5 содержит примеры компиляции и компоновки программ иа языке С++. Глава 6 содержит примеры компиляции и компоновки программ на языке ОЬ|есйге-С. Глава 7 содержит примеры компиляции и компоновки программ на языке Рог~гоп. Глава 8 содержит примеры компиляции и компоновки программ на языке зата. Глава 9 содержит примеры компиляции и компоновки программ на языке АНа. Глава 1О описывает способы сочетания исходного кода на двух языках программирования для получения одного готового к запуску файла. Глава 11 поясняет применение средств 0)Ч 0 для интернационализации и локализации скомпилированных в ОСС программ. Глава 12 содержит примеры создания и применения статических и разделяемых объектных библиотек.
Глава 13 Здесь поясняются основы использования отладчика ОЪИ). Глав» 14 описывает использование таХе и других связанных с ией утилит. Глава 15, В этой главе обсуждается ассемблер О)ч'с) и поясняется, как вы можете его использовать с ОСС.
Глава 16 описывает процесс конфигурирования ОСС для компиляции и компоновки программ, предназначенных для другой машины. Глава Г7 объясняет, как можно использовать ОСС для выработки кода, выполняемого во встраиваемых (етбеддед) системах. Глава 18 содержит примеры генерации компилятором другой полезной информации, кроме объектного кода. Глава 19 дает представление об использовании утилит 1ех и уасс для построения пользовательского верхнего уровня компилятора. Глава 20 описывает промежуточный язык КТ1., который вырабатывается верхним уровнем компилятора и используется для передачи кода на нижний уровень.
Глава 21 предоставляет список доступных опций командной строки для применения различных версий компилятора на различном оборудовании. Приложение А содержит копию Общественной Лицензии О)ч с) (и ее перевод на русский язык). Приложение Б перечисляет переменные окружения, оказывающие влияние на работу ОСС Приложение В содержит справочник перекрестной совместимости опций командной строки по их категориям. Ирияожеиие Г содержит алфавитный сиисо«опций «омаидиой стро«и.