Процесс сборки может включать тестирование, упаковку и другие действия помимо компиляции.
«Сборка» — это довольно общий термин, и он может относиться ко всему, что необходимо для перехода от редактируемого исходного материала (исходный код, сценарии, файлы необработанных данных и т. Д.) К готовому программному продукту. Сборка может (и обычно имеет) несколько этапов, таких как предварительная обработка, компиляция, компоновка, преобразование файлов данных, запуск автоматических тестов, упаковка и т. Д.
«Компиляция» более специфична и почти всегда относится к процессу, который принимает исходный код в качестве входных данных и выводит что-то работоспособное, обычно машинный код для физической или виртуальной машины, или исходный код на другом языке.
Эти термины часто используются взаимозаменяемо, но я бы выделил их следующим образом:
- Сборка выполняется при подготовке приложения к выпуску, которое включает компиляцию, упаковку, тестирование и т. Д.
- Компиляция выполняется в любое время, когда компилятор занимается переводом кода языка программирования в машинный код.
Таким образом, компиляция действительно подмножество сборки.
C++ с нуля | 08 | Компиляция и линковка
«Сборка выполняется при подготовке приложения к выпуску» — не говорите, что толпа непрерывной интеграции;) Или любой другой заядлый пользователь автоматических сборок, в этом отношении.
Что ж, по словам постоянных пользователей, каждая из этих сборок должна быть готова к выпуску. Но практика говорит об обратном, и обычно «сборки» могут служить любой цели, которая помогает подготовить программное обеспечение к запуску и протестировать его. Отладочные сборки, например. Или проверить, что ваши изменения не сломали ни одного из 16 миллионов тестов.
Компиляция выполняется компилятором, сборка может быть более сложным процессом.
Например. в C ++ для создания проекта необходим препроцессор (предварительная обработка исходных файлов); компилятор (компиляция исходных файлов); компоновщик (объединение всего в исполняемый файл — скомпилированный код, значки, строки, другие ресурсы вместе)
Таким образом, обычно компиляция — это перевод кода, написанного на одном языке, на другой (например, машинный код).
Источник: qastack.ru
Компилятор и компиляция. Сборка программы.
Компилятор — это компьютерная программа, которая переводит компьютерный код, написанный на одном языке программирования (исходный язык), на другой язык (целевой язык).
Этапы компиляции:
- Препроцессинг
- Компиляция
- Ассемблирование
- Компоновка
- Загрузка
Интегрированная среда разработки.
Интегрированная среда разработки, ИСP (англ. Integrated development environment — IDE), также единая среда разработки, ЕСР — комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО).
Этапы компиляции на Си: предобработка, трансляция, компоновка
Среда разработки включает в себя:
- текстовый редактор,
- Транслятор (компилятор и/или интерпретатор),
- средства автоматизации сборки,
- отладчик.
- Общая структура программы на языке C++.
Препроцессор и директивы препроцессора.
Директивы препроцессора – это особые инструкции, которые записаны в тексте программы на СИ и выполнены до трансляции программы.
Препроцессор С/С++ — программа, подготавливающая код программы на языке C/C++ к компиляции.
Источник: studfile.net
ФОРМАТЫ ИСПОЛНЯЕМЫХ ФАЙЛОВ КОМПИЛЯЦИЯ И СБОРКА ПРОГРАММ
КОМПИЛЯЦИЯ И СБОРКА ПРОГРАММ Обёртка Исходная программа Объектный файл Трансляция (компиляция) Сборка (линковка) #include int main() < int x[100]; >Исполняемый файл int func() < int x[100]; >>> Библиотека функций Статическое и динамическое связывание?
Что такое исполняемый файл? Исполни мый (исполня емый) файл (англ. executable file) — это разновидность файла, содержимое которого является инструкциями для операционной системы каким образом необходимо создать новый процесс и что этот процесс должен содержать (что исполнять). Исполняемый файл содержит: • заголовок; • машинные инструкции; ELF = Executable and Linkable Format • статические данные; PE – Portable Executable • информацию о стеке; • информацию о куче; COFF, ECOFF, A. OUT, и т. д. EXE (MZ, NE, LX, PE), COM • и т. п.
Контрольные вопросы • что такое исполняемый файл? • все ли исполняемые файлы имеют одинаковую структуру? • могут ли использоваться сразу несколько форматов исполняемых файлов? • зачем в скрипте BASH в первой строке указывается «магическая» комбинация символов «#!» ? Как эти символы относятся к форматам исполняемых файлов? • можно ли сказать, что формат файла определяется расширением (суффиксом)? • Что такое секция в исполняемом файле? • Можно ли просмотрев исполняемый файл узнать сколько оперативной памяти нужно для его выполнения? • Зачем используется динамическое связывание? • Утилиты readelf и pebuilder. Зачем нужны?
Источник: present5.com