build pipeline

C++ 코드는 네 단계를 거쳐 실행 파일이 된다

한 줄의 빌드 명령은 내부에서 전처리, 컴파일, 어셈블, 링크를 순서대로 실행합니다. 각 단계는 다음 단계가 읽을 산출물을 남깁니다.

명령 g++ hello_world.cpp -o hello_world
0

소스 작성

사람이 읽는 C++ 코드와 헤더 포함 지시자를 준비한다.

입력: hello_world.cpp
1

전처리

#include, 매크로, 조건부 컴파일을 먼저 펼친다.

산출물: hello_world.ii
2

컴파일

C++ 문법과 타입을 검사하고 어셈블리 코드로 번역한다.

산출물: hello_world.s
3

어셈블

어셈블리 명령을 기계어 조각인 목적 파일로 바꾼다.

산출물: hello_world.o
4

링크

목적 파일과 라이브러리 참조를 묶어 실행 가능한 파일을 만든다.

결과: hello_world
오류 메시지가 어느 단계에서 멈췄는지 알면 수정해야 할 대상도 소스, 헤더, 라이브러리, 실행 환경 중 하나로 좁혀진다.