위키득계정 ↗
기술

Distcc

Distcc기술
주요 역할
분산 C C++ 컴파일
서버 프로세스
Distccd
기본 전송 대상
전처리된 소스
확장 실행 방식
Pump 모드
Distcc는 C와 C++ 컴파일 작업을 네트워크의 여러 기계에 분배하는 도구다. 기존 컴파일러의 앞에서 동작하며 기본 모드에서는 전처리한 소스를 서버에 보내 컴파일을 수행한다.

컴파일러 앞에서 작업 분배

Distcc 자체가 소스를 기계어로 바꾸는 컴파일러는 아니다. GCC 같은 실제 컴파일러를 호출하는 앞단으로 동작한다. Make의 병렬 빌드 기능과 함께 사용해 여러 컴파일 작업을 원격 기계에 나누어 보낸다.

기본 모드의 처리 범위

전처리는 클라이언트에서 하고 완성된 전처리 소스를 원격 서버에 보낸다. 서버에는 적절한 컴파일러와 데몬이 필요하다. 모든 기계가 같은 파일 시스템이나 동기화된 시계를 공유할 필요는 없지만 출력 바이너리 형식이 호환되거나 교차 컴파일러를 갖춰야 한다.

전처리까지 나누는 Pump

Pump 모드는 컴파일뿐 아니라 전처리도 서버에 맡긴다. 이때는 클라이언트와 서버의 시스템 헤더가 같아야 하며 응용에 필요한 헤더는 클라이언트가 전달한다. 기본 모드의 환경 조건을 그대로 적용하면 안 되는 이유가 이 처리 범위의 차이에 있다.

관련 문서

Icecream 분산 컴파일 / Ccache / Sccache / 컴파일러