Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Создание файла проекта. Объектные файлы. Раздельная компиляция. Make-файлы.

Читайте также:
  1. I. Создание «советской системы» в экономике
  2. IV. Создание образа убийцы
  3. Актуальность проекта. Обоснование необходимости проекта. Выбор и изучение проблемы
  4. Вопрос(Создание и деятельность военно-политических блоков в 1940-1960-е гг. НАТО и ОВД. Региональные пакты.)
  5. Воссоздание земных поселений
  6. Воссоздание земных поселений.
  7. ВОССОЗДАНИЕ СВОЕЙ РЕАЛЬНОСТИ

 

Раздельная компиляция — трансляция частей программы по отдельности с последующим объединением их компоновщиком в единый загрузочный модуль.

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

Объе́ктный мо́дуль— файл с промежуточным представлением отдельного модуля программы, полученный в результате обработки исходного кода компилятором. Объектный файл содержит в себе особым образом подготовленный код (часто называемый бинарным), который может быть объединён с другими объектными файлами при помощи редактора связей (компоновщика) для получения готового исполнимого модуля, либо библиотеки.

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

Рассмотрим простейший файл проекта типа.pro, используемый qmake и qt creator.

Содержимое файла:

CONFIG += qt debug

HEADERS += hello.h

SOURCES += hello.cpp

SOURCES += main.cpp

CONFIG, HEADERS, SOURCES - переменные.

В файле проекта переменные используются для хранения списков строк. В простых проектах эти переменные информируют qmake о параметрах настройки, именах файлов и каталогах, которые используются в процессе сборки.

Список наиболее важных переменных:

CONFIG Общие параметры настройки проекта.

DESTDIR Каталог, в который будет помещен исполняемый или бинарный файл.

FORMS Список.ui файлов, которые обработаны uic.

HEADERS Список имен заголовочных файлов (.h), используемых при сборке проекта.

QT Qt-ориентированные параметры конфигурации.

SOURCES Список файлов с исходным кодом, которые используются при сборке проекта.

TEMPLATE Шаблон, используемый в проекте. Он определяет, что будет на выходе процесса сборки: приложение, библиотека или подключаемый модуль.

Присваивание переменной значения: HEADERS = mainwindow.h paintwidget.h

Добавление строки в переменную: HEADERS + = mainwindow.h

 

Qmake создает Makefile на основе файла проекта.pro, который в дальнейшем используется утилитой make.

make — утилита, автоматизирующая процесс преобразования файлов из одной формы в другую. Чаще всего это компиляция исходного кода в объектные файлы и последующая компоновка в исполняемые файлы или библиотеки.

Утилита использует специальные make-файлы, в которых указаны зависимости файлов друг от друга и правила для их удовлетворения. На основе информации о времени последнего изменения каждого файла make определяет и запускает необходимые программы.

Структура Makefile:


Дата добавления: 2015-10-13; просмотров: 121 | Нарушение авторских прав


Читайте в этой же книге: ИНДЕКСАЦИЯ В МАССИВАХ | Указатели на функции. Особенности использования. | Классификация динамических структур данных | Строки. Операции над строками. Указатели на строки. | Структурные типы данных: структуры. Особенности использования. | Основы файловой системы: файл, каталог, дисковод, полное имя файла, внутреннее представление информации в файле. Типы файлов. | Память. Классы памяти. Модификаторы классов памяти. Область видимости, время жизни и место размещения объекта в памяти. | Достоинства, отличительные особенности и сравнительная характеристика языка программирования Си. | Модульное программирование. Структура модуля. Законы видимости | Структура модуля. |
<== предыдущая страница | следующая страница ==>
Назначение| Команда

mybiblioteka.su - 2015-2024 год. (0.007 сек.)