컴파일 언어의 빌드과정은 4단계로 진행됩니다.
전처리 단계 → 컴파일러 단계 → 어셈블 단계 → 링커 단계
빌드의 첫번째 단계이며, 컴파일러가 코드를 컴파일 할 수 있도록 코드를 정리합니다. #include, #define 같은 전처리문을 처리해주고, 주석을 삭제해줍니다.
#include <iostream>
//#include는 전처리 단계에서 iostream 파일에 있는 내용을 현재 소스코드에 포함시킵니다.
//iostream 헤더에 있는 내용이 해당 지시문을 대체합니다.
#define ll long long
//#define 은 ll로 쓰인 문자열을 long long으로 대체합니다
//단순히 문자열을 치환하는 기능이기 때문에 오용할 가능성이 있습니다.
//전처리문을 통해 작성된 소스코드의 특정 부분을 수정하거나 대체하기 때문에
//가장 먼저 실행됩니다.
int main()
{
ll a = 0;
return 0;
}
컴파일러가 전처리된 소스코드를 어셈블리 코드로 번역합니다.
어셈블리 코드가 기계어 코드로 변환됩니다.
여러 소스파일로부터 생성된 기계어 코드가 하나의 실행파일로 합쳐집니다.