Чим відрізняється код компіляції від виконуваного коду?


Відповіді:


159

Складання - це акт перетворення вихідного коду в об'єктний код.

Зв'язування - це акт об'єднання об'єктного коду з бібліотеками в необроблений виконуваний файл.

Побудова - це послідовність, що складається з компіляції та зв’язування, можливо, з іншими завданнями, такими як створення інсталятора.

Багато компіляторів автоматично обробляють етап з'єднання після компіляції вихідного коду.


19

З Вікіпедії :

У галузі комп'ютерного програмного забезпечення термін збірка програмного забезпечення відноситься або до процесу перетворення файлів вихідного коду в окремий артефакт програмного забезпечення, який можна запустити на комп'ютері, або до результату цього. Одним з найважливіших кроків побудови програмного забезпечення є процес компіляції, де файли вихідного коду перетворюються на виконуваний код.

Хоча для простих програм процес складається з одного файлу, який складається, для складного програмного забезпечення вихідний код може складатися з багатьох файлів і може поєднуватися по-різному для отримання безлічі різних версій.


9

Збірка може розглядатися як сценарій, який складається з безлічі кроків - основним з яких було б складання коду. Інші могли бути

  • запущені тести
  • звітність (наприклад, висвітлення)
  • статичний аналіз
  • до та після створення кроків
  • запуск спеціальних інструментів над певними файлами
  • створення встановлень
  • маркування їх та розгортання / копіювання у сховище

7

Вони часто використовуються для того, щоб означати те саме. Однак "складання" також може означати повний процес збирання та зв’язування цілої програми (у випадку, наприклад, C і C ++), або навіть більше, включаючи, серед іншого,

  • упаковка
  • автоматичне (одиничне та / або інтеграційне) тестування
  • покоління інсталятора
  • установка / розгортання
  • документація / генерація сайту
  • формування звіту (наприклад, результати тестів, висвітлення).

Є такі системи, як Maven , які узагальнюють це поняттям життєвого циклу , який складається з декількох етапів, створюючи різні артефакти, можливо, використовуючи результати та артефакти попередніх етапів.


5

Зі свого досвіду я б сказав, що "компіляція" означає перетворення одного чи декількох читабельних для людини вихідних файлів у байтовий код (файли об'єктів у С), а "нарощування" позначає весь процес компіляції, зв’язування та все, що ще потрібно. зроблено з цілого пакету чи проекту.


2

Більшість людей, ймовірно, вживають терміни взаємозамінно. Ви могли побачити один нюанс: компіляція - це лише крок, коли ви передаєте якийсь вихідний файл через компілятор (gcc, javac, що завгодно).

Будівництво можна почути як більш загальний процес перевірки джерела, створення цільової папки для зібраних артефактів, перевірки залежностей, вибору того, що потрібно компілювати, виконання автоматизованих тестів, створення tar / zip / ditributions, натискання на ftp тощо ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.