빌드 과정은 크게 전처리기, 컴파일, 어셈블러, 링커 순으로 실행됩니다.
[전처리기]
유저가 작성한 코드를 저수준 언어로 변환하기 위한 준비를 실시합니다. 주석, 공백 등 불필요한 요소를 제거하고 매크로 구문을 치환하며, 헤더 파일의 코드 전체를 소스파일 내에 추가하게 됩니다.
[컴파일]
전처리 과정을 거친 코드를 저수준의 어셈블리어로 번역하는 동시에 문법상의 오류를 검출하기도 합니다.
[어셈블러]
어셈블러 과정에서는 어셈블리어를 0과 1로 이루어진 바이너리 코드로 변환합니다. 변환된 바이너리 코드는 여러 개의 오브젝트 파일(.obj)로 저장됩니다.
[링커]
위에서 여러 개로 저장된 오브젝트 파일을 해당 단계에서 하나의 프로그램에서 작동하도록 연결해줍니다. 이 과정에서 정적 라이브러리가 프로그램과 함께 묶이게 됩니다. 하나로 묶인 프로그램은 exe 파일로 저장되며 빌드가 완료됩니다.
'C++' 카테고리의 다른 글
| [C++] placement new (0) | 2025.10.13 |
|---|---|
| [C++] 완벽한 전달(Perfact Forwarding)과 std::forward (0) | 2025.05.16 |
| [C++] 이동 생성자와 std::move() (0) | 2025.05.16 |
| [C++] 좌측값과 우측값(lvalue and rvalue) (0) | 2025.05.15 |
| [C++] 복사 생략(Copy Elision) (0) | 2025.05.15 |