언어별 처리와 대상 기계
C와 C++ 외에 Fortran과 Ada 등 여러 언어를 위한 처리를 제공한다. 언어별 소스를 해석하는 프런트엔드와 여러 대상 기계의 코드 생성 및 관련 라이브러리를 함께 다룬다. 지원 언어의 종류와 각 기능의 완성도는 사용하는 배포 버전과 대상에 따라 구분해야 한다.
전처리부터 링크까지
일반적인 호출은 전처리와 컴파일, 어셈블 및 링크를 차례로 연결한다. 옵션으로 중간 단계에서 멈출 수 있으며 링크를 생략하면 오브젝트 파일을 얻는다. 사용자가 호출하는 드라이버와 개별 단계의 도구를 나누어 이해하면 출력 형식의 차이를 설명할 수 있다.
명령과 옵션의 역할
C++ 프로그램에는 일반적으로 g++ 드라이버를 사용한다. 교차 컴파일 환경은 대상 기계에 맞는 명령과 도구 구성을 사용한다. 전처리나 경고, 최적화와 링크 설정은 서로 다른 단계에 영향을 주며 일부 옵션과 라이브러리의 배치 순서는 결과에 영향을 줄 수 있다.
관련 문서
Clang / Ccache / Distcc / Icecream 분산 컴파일 / 컴파일러