ФГБОУ ВО «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ
ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»
Физико-математический факультет
Кафедра информатики и вычислительной техники
Реферат
«Проект. Компиляция программы и сборка исполняемого модуля»
Выполнила:
студентка группы МДИ-118
Андоськина А. Д.
Проверила:
кандидат ф.-м. наук, доцент
Кормилицина Т. В.
Саранск 2021
Компиляция (compilation) – это преобразование программы или ее отдельного модуля, текст которых составлен на языке программирования высокого уровня (исходная программа, исходный модуль – это файл с расширением .срр) в программу или модуль на машинном языке или на языке, близком к машинному (получают объектный модуль – файл с расширением .obj). Компиляцию осуществляет специальная программа –компилятор (compiler), которая является неотъемлемой частью системы программирования. На вход компилятора поступает исходный модуль (файл .срр), который после компиляции преобразуется в объектный модуль (файл .obj)
Объектный модуль не может быть исполнен, его местоположение в оперативной памяти еще не известно (не определено). Компилятор вырабатывает только относительные адреса связи с другими модулями. В дальнейшем их предстоит заменить конкретными адресами (абсолютными адресами) той части оперативной памяти, в которой этот модуль будет выполняться.
Результат компиляции – это промежуточная форма программных модулей, к которым впоследствии необходимо присоединить библиотечные модули, содержащие стандартные подпрограммы и процедуры, а если нужно, то можно добавить любые другие модули, написанные самим пользователем, и скомпилированные в объектные модули, возможно даже с других языков высокого уровня.
Существуют различные виды компиляторов:
-
интерпретирующие (пошаговые), осуществляющие последовательную независимую компиляцию каждой отдельной инструкции исходной программы;
-
оптимизирующие, осуществляющие повышение эффективности объектных модулей, например, за счет вынесения из циклов последовательности команд, результаты действий которых не меняются при повторении циклов;
-
отладочные, облегчающие пользователю отладку программ.
Компоновка, редактирование связей (linking, linking editing) – это процесс сборки загрузочного модуля (исполняемого файла) из полученных в результате раздельной компиляции объектных модулей с одновременным автоматическим поиском и присоединением библиотечных подпрограмм и процедур. В процессе компоновки программа собирается в единое целое непосредственно в оперативной памяти в файл, готовый к работе (загрузочный модуль - файл с расширением .ехе).
Работу по компоновке программы выполняет программа компоновщик (linker). Эта программа выполняет следующие основные функции:
-
распределяет пространство оперативной памяти для программы;
-
связывает вместе части программы, представленные отдельными объектными модулями (файлами .obj);
-
настраивает адреса подготовленной программы, заменяя все относительные адреса, выработанные компилятором, соответствующими абсолютными адресами фактически распределенной памяти.
Компоновщики бывают в двух реализациях:
-
компоновщики, которые готовят загрузочный файл; этот файл при необходимости может быть загружен в оперативную память для исполнения;
-
компоновщики, которые готовят загрузочный файл, сразу физически размещают подготовленную версию машинного кода программы в памяти и передают управление на первую команду программы для непосредственного исполнения.
Эти операции могут быть выполнены с помощью меню Build.
Краткое описание основных команд этого меню:
-
Сompile– компиляция выбранного файла, результат компиляции отображаются в окнах Task ListиOutput.
-
Build - компоновка проекта. Компилируются все файлы, в которых произошли изменения с момента последней компоновки. После компиляции происходит сборка всех объектных модулей, включая библиотечные, в результирующий исполняемый файл. Сообщения об ошибках компоновки выводятся в окна Task List и Output. Если обе фазы компоновки завершились без ошибок, то созданный исполняемый файл с расширением .ехе может быть запущен. Запуск этого файла не осуществляется.
-
Rebuild – делается то же, что и в команде Build, но при выполнении этой команды компилируются все файлы проекта независимо от того, были ли в них изменения.
Эти операции могут быть выполнены и с помощью меню Debug, его команд Start или Start Without Debugging. Эти две команды делают все то же, что и команда Build, сразу же запуская файл с расширением .ехе.
-
Запустите ваш проект, выполнив команду Start меню Debug. Появляется выпадающее диалоговое окно, в котором нам задается вопрос: Would you like to build them? Вопрос задается вам, так как вы не выполняли отдельно процедуру компоновки программы Build, а ее необходимо выполнить. Согласитесь на ее выполнение, ответив «Да». Так как программа, которую вы скопировали, не имеет ошибок, то появляется черное консольное окно [run], в котором начинает работать ваша программа.
Введите два числа – первое обязательно целое, второе любое. Получите результат.
-
Сверните главное окно Microsoft Visual Studio.Net и разверните свое окно. В вашей папке появилась новая папка Debug. В этой папке появились новые файлы, среди них файлMyFirstProject.exe (исполняемый файл). Запустите его, щелкнув по его пиктограмме.
-
Разверните снова главное окно Microsoft Visual Studio.Net. Закройте свой проект, выбрав в меню File команду Close Solution. Закрыть проект можно просто, закрыв главное окно.