Ответы:
Компиляция - это процесс превращения исходного кода в объектный код.
Связывание - это процесс объединения объектного кода с библиотеками в необработанный исполняемый файл.
Сборка - это последовательность, состоящая из компиляции и компоновки с, возможно, другими задачами, такими как создание установщика.
Многие компиляторы автоматически обрабатывают этап связывания после компиляции исходного кода.
Из википедии :
В области компьютерного программного обеспечения термин « сборка программного обеспечения» относится либо к процессу преобразования файлов исходного кода в отдельные программные артефакты, которые могут быть запущены на компьютере, либо к результату этого. Одним из наиболее важных этапов сборки программного обеспечения является процесс компиляции, при котором файлы исходного кода преобразуются в исполняемый код.
В то время как для простых программ процесс состоит из одного компилируемого файла, для сложного программного обеспечения исходный код может состоять из многих файлов и может комбинироваться различными способами для создания множества различных версий.
Сборку можно рассматривать как сценарий, который состоит из множества этапов, основным из которых будет компиляция кода. Другие могли быть
Часто они означают одно и то же. Однако «сборка» может также означать полный процесс компиляции и связывания всего приложения (в случае, например, C и C ++), или даже больше, включая, среди прочего
Существуют системы, подобные Maven , которые обобщают это с помощью концепции жизненного цикла , который состоит из нескольких этапов, производящих различные артефакты, возможно, с использованием результатов и артефактов с предыдущих этапов.
Исходя из своего опыта, я бы сказал, что «компиляция» относится к преобразованию одного или нескольких читаемых человеком исходных файлов в байтовый код (объектные файлы в C), в то время как «построение» обозначает весь процесс компиляции, компоновки и всего остального, что необходимо. сделано для всего пакета или проекта.
Большинство людей, вероятно, использовали бы эти термины как синонимы. Вы могли заметить один нюанс: компиляция - это всего лишь шаг, на котором вы передаете некоторый исходный файл через компилятор (gcc, javac, что угодно).
Сборку можно было услышать как более общий процесс проверки источника, создания целевой папки для скомпилированных артефактов, проверки зависимостей, выбора того, что нужно скомпилировать, запуска автоматических тестов, создания tar / zip / ditributions, перехода на ftp. , и т.д...