Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » С.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. - Инструментальные средства разработки ПО в ОС UNIX

С.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. - Инструментальные средства разработки ПО в ОС UNIX, страница 2

PDF-файл С.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. - Инструментальные средства разработки ПО в ОС UNIX, страница 2 Операционные системы (37374): Книга - 3 семестрС.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. - Инструментальные средства разработки ПО в ОС UNIX: Операционные системы - PDF, страница 2 (3732019-05-08СтудИзба

Описание файла

PDF-файл из архива "С.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. - Инструментальные средства разработки ПО в ОС UNIX", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Какиеоперации необходимо выполнить с файлами – зависит от суффиксаимен файлов. Возможные суффиксы перечислены в таблице ниже.Если имя файла имеет нераспознанный суффикс, это имя передаётсякомпоновщику.Суффикс именифайлаВыполняемые действия.hЗаголовочный файл на языке Си. Не должениспользоваться в аргументах команды gcc.Попытка трансляции такого файла вызываетсообщение об ошибке..cФайлнаязыкеСи.препроцессирование,ассемблирование и компоновка..iПрепроцессированный файл на языке Си.Выполняется трансляция, ассемблирование икомпоновка..sФайл на языке ассемблера.ассемблирование и компоновка..SФайл на языке ассемблера.

Выполняетсяпрепроцессирование,ассемблированиеикомпоновка..oОбъектный файл. Выполняется компоновка..aФайл статической библиотеки. Выполняетсякомпоновка.Выполняетсятрансляция,ВыполняетсяДействия по трансляции файла определяются для каждогоуказанного в командной строке файла индивидуально. Например,если в командной строке указаны имена файлов 1.c и 2.o, то дляпервого файла будут выполнены все шаги трансляции, а для второго– только компоновка.

Исполняемый файл будет содержать результаттрансляции первого файла, скомпонованный со вторым файлом истандартными библиотеками.8Пользователь может явно задать, на какой фазе нужноостановиться. По умолчанию транслятор пытается выполнить всенеобходимые фазы, включая компоновку программы. Конечная фазатрансляции программы определяется для всех транслируемых заодин вызов gcc файлов указанием одной из опций, перечисленных втаблице.ОпцияОписание-EОстановитьсяпослепрепроцессирования.Результат работы препроцессора выводится поумолчанию на стандартный поток вывода. Имявыходного файла можно указать с помощьюопции -o. При этом если в командной строкеуказано несколько файлов, то в выходной файлбудет помещён результат препроцессированияпоследнего файла.-SОстановиться после трансляции в ассемблер.

Поумолчанию имя выходного файла получается изимени входного файла заменой суффикса .c или.i на суффикс .s. Явное имя выходного файламожно указать с помощью опции -o. Попыткаиспользования опции -o и нескольких имёнвходных файлов вызывает сообщение об ошибке.-cОстановиться после ассемблирования. Поумолчанию имя выходного файла получается изимени входного файла заменой суффикса егоимени на суффикс .o.

Явное имя выходногофайла можно указать с помощью опции -o,которая несовместима с указанием одновременнонескольких транслируемых файлов.Если ни одной из перечисленных выше опций незадано, выполняются все стадии трансляции.Имя выходного файла по умолчанию равно a.out,но может быть изменено с помощью опции -o.Позволяет задать явное имя выходного файла длялюбой стадии трансляции.-oНапример, командная строкаgcc 1.c 2.c -o 19транслирует два файла на языке Си, объединяя их в одну программус именем 1.Командная строкаgcc 3.o 4.o -o 3 -lmкомпонует два объектных файла, добавляя к ним стандартнуюбиблиотеку языка Си и стандартную математическую библиотеку(опция -lm), и помещает результат в исполняемый файл с именем 3.Прочие полезные опции транслятора gcc перечислены втаблице.ОпцияОписание-I PATHДобавляет каталог PATH в начало спискакаталогов,которыепросматриваютсяпрепроцессоромприпоискефайлов,подключаемыхдирективой#include.Вкомандной строке может быть указано несколькоопций -I, тогда каталоги просматриваются впорядке, в котором они указаны в команднойстроке.-D NAMEОпределяет макрос с именем NAME, которыйполучает значение 1.-DNAME=VALUEОпределяет макрос с именем NAME, которыйполучает заданное значение VALUE.-WallВключаетвыдачубольшогоколичествапредупреждающих сообщений, которые поумолчанию не выдаются.

Опция должнаиспользоваться при компиляции программ, всепредупреждающие сообщения компиляторадолжны быть внимательно проанализированы,поскольку могут указывать на ошибки впрограмме.-gВключает генерацию отладочной информации висполняемую программу. Наличие отладочнойинформации позволяет отлаживать программу втерминах исходного языка, а не машинного кода.-O2Включаетбольшинствооптимизацийпрограммы, которые одновременно уменьшаютразмер программы и увеличивают скорость её10выполнения.-L PATHДобавляет путь PATH в начало списка каталогов,которые просматриваются редактором связейпри поиске библиотек, указанных с помощьюопции -L. Если в командной строке указанонесколько опций -L, они добавляются в том жепорядке, в котором указаны в командной строке.-lnameДобавляет библиотеку name к списку библиотек,которые участвуют в компоновке программы(обратите внимание на отсутствие пробеламежду опцией и именем библиотеки). Всистемах Unix редактор связей просматриваетбиблиотеки один раз, поэтому неправильныйпорядок задания библиотек может привести ктому,чтонекоторыеименаостанутсянеопределёнными, и компиляция завершится сошибкой.

Файл, хранящий библиотеку с именемname, называется libname.a, если библиотекастатическая, и libname.so, если библиотекадинамическая.-staticУказывает, что при компоновке не должныиспользоватьсядинамическиебиблиотеки.Реализации всех используемых в программефункций будут добавлены непосредственно висполняемый файл. Размер исполняемого файлапрограммы может вырасти на сотни килобайт,зато такая программа перестанет быть зависимойот динамических библиотек. На некоторыхсистемах могут отлаживаться только статическискомпонованные программы.Использование стандартных библиотек языка СиВ языках Си и Си++ библиотеки состоят из двух частей:Заголовочных файлов, содержащих объявления типов данных,констант, прототипов функций и внешних переменных,которые подключаются к исходным файлам на этапепрепроцессирования, формируя единицы трансляции.Файлов реализации, содержащих тела функций и определенияпеременных, которые подключаются к программе на этапе11компоновки (в случае статических библиотек) или на этапевыполнения (в случае динамических библиотек).Заголовочные файлы стандартной библиотеки находятся в каталоге/usr/include и его подкаталогах, например, /usr/include/stdio.h или/usr/include/sys/types.h.

Программа-драйвер gcc автоматическидобавляет этот каталог в список для поиска заголовочных файлов,поэтому каталог /usr/include не нужно задавать в опции –I.Файлы динамических библиотек размещаются в каталоге /lib или/usr/lib, а файлы статических библиотек – в каталоге /usr/lib. Онизадаются автоматически и опция –L для них не нужна. Файлдинамической библиотеки языка Си называется libc.so и полныйпуть к нему – /lib/libc.so.Таким образом, если выписать явно пути и библиотеки, задаваемыепри компиляции программы на Си с помощью gcc неявно, мыполучим примерно следующую командную строку:gcc -I/usr/include -L/lib -L/usr/lib jeltz.c –lcИсключением являются математические функции стандартнойбиблиотеки Си, объявленные в заголовочном файле <math.h>,например, sin.

Их реализации вынесены в отдельную библиотекуlibm.so (libm.a), которая не указывается в списке подключаемыхбиблиотекпоумолчанию.Длякомпоновкипрограмм,использующих математические функции, необходимо в команднойстроке gcc указать опцию -lm:gcc -Wall -O2 marvin.c -omarvin –lmДля того, чтобы увидеть все пути, передаваемые драйверомкомпиляции gcc препроцессору, компилятору, ассемблеру икомпоновщику, можно использовать опцию –v:gcc -g -O0 -v prosser.c -o prosserКомпоновка программыЕсли исполняемая программа компонуется из несколькихединиц трансляции, компоновщик использует свои правилавидимости имён, которые приведены ниже:12Все имена, объявленные с классом памяти static, видимытолько в пределах своей единицы трансляции и не влияют накомпоновку.Если некоторая единица трансляции использует внешнее имя(переменной или функции), которое не определено ни в какойединице трансляции, выдаётся сообщение об ошибке.Еслинесколькоедиництрансляцииопределяютнестатическую функцию с одним и тем же именем, выдаётсясообщение об ошибке.Если некоторое нестатическое имя определяется и какпеременная, и как функция, выдаётся сообщение об ошибке.Еслинесколькоедиництрансляцииопределяютнестатическую инициализированную переменную с одним итем же именем, выдаётся сообщение об ошибке.Если несколько единиц трансляции определяют переменную содним и тем же именем, которая инициализируется не болеечем в одной единице трансляции, все определенияразмещаются, начиная с одного адреса.Последнее правило можно продемонстрировать на следующемпримере.

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