빌드와 컴파일의 차이점은 무엇입니까?


답변:


34

컴파일은 빌드 프로세스의 일부 입니다.

빌드 프로세스에는 컴파일, 테스트 및 패키징 및 기타 활동이 포함될 수 있습니다.


19

"빌딩"은 상당히 일반적인 용어이며 편집 가능한 소스 자료 (소스 코드, 스크립트, 원시 데이터 파일 등)에서 선적 가능한 소프트웨어 제품으로 이동하는 데 필요한 모든 것을 가리킬 수 있습니다. 빌드는 사전 처리, 컴파일, 링크, 데이터 파일 변환, 자동 테스트 실행, 패키징 등과 같은 여러 단계를 포함 할 수 있습니다.

"컴파일"은보다 구체적이며, 거의 항상 소스 코드를 입력으로 사용하여 실행 가능한 무언가, 일반적으로 실제 또는 가상 머신의 머신 코드 또는 다른 언어의 소스 코드를 출력하는 프로세스를 말합니다.


9

이러한 용어는 종종 상호 교환 적으로 사용되지만 다음과 같은 방식으로 구별합니다.

  • 컴파일, 패키징, 테스트 등을 포함하여 릴리스 할 응용 프로그램을 준비 할 때 빌드가 수행됩니다.
  • 컴파일러는 프로그래밍 언어 코드를 기계 코드로 변환하는 데 컴파일러가 관여 할 때마다 수행됩니다.

따라서 컴파일은 실제로 건물의 하위 집합입니다.


1
"출시를 위해 애플리케이션을 준비 할 때 빌드가 완료됩니다"-지속적인 통합이 필요하다는 것을 말하지 마십시오.

1
@delnan : 동의합니다. 지속적인 통합은 애플리케이션 수명 동안 많은 "빌드"를 만듭니다. 그러나 이러한 빌드 중 일부 또는 전부를 공개 릴리스 준비에 사용할 수 있습니다. 빌드, 테스트 및 승인 프로세스에 따라 다릅니다.
Bernard

3
지속적인 배달 관중에 따르면, 각 빌드는 출시 준비가되어 있어야합니다. 그러나 실제로는 달리 말하지만 일반적으로 "빌드"는 소프트웨어를 실행하고 테스트 할 준비를하는 데 도움이되는 모든 목적에 도움이 될 수 있습니다. 예를 들어 디버그 빌드. 또는 변경 사항이 1,600 만 테스트를 위반하지 않았는지 확인하십시오.

2
@delnan-테스트에 실패한 빌드는 어떻습니까? 계속되는 배달의 표준에 의해, 그것은 구축 되었지만 출시 준비가 되지 않았습니다.)
Oded

2

컴파일은 컴파일러에 의해 수행되며 빌드는 더 복잡한 프로세스 일 수 있습니다.

예 : C ++에서 프로젝트를 빌드하려면 전 처리기 (소스 파일의 전처리)가 필요합니다. 컴파일러 (소스 파일의 컴파일); 링커 (모든 것을 실행 파일로 병합-컴파일 된 코드, 아이콘, 문자열 및 기타 리소스)

따라서 일반적으로 컴파일은 한 언어로 작성된 코드를 다른 언어로 번역하는 것입니다 (예 : 기계 코드).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.