1. 전처리(Preprocessing)
- 전처리기가 수행
- #include 지시문에 따라 헤더 파일들을 소스 코드에 삽입
- #define으로 정의된 매크로를 치환
- 조건부 컴파일 지시문(#ifdef, #ifndef)을 처리하여 조건에 맞는 코드만 포함시킴
- 주석 제거
2. 컴파일(Compilation)
- 컴파일러가 전처리된 소스 코드를 읽어 어셈블리 코드로 변환하고 문법 검사, 오류 보고, 최적화
3. 어셈블리(Assembly)
- Assembler가 어셈블리 코드를 기계어로 변환
4. 링크(Linking)
- 링커가 수행
- 함수와 변수의 참조를 해석하고 정의된 심볼을 메모리 주소에 배치
- 여러 파일에서 발생하는 주소 충돌을 피하기 위해 각 파일의 코드와 데이터를 재배치
- 라이브러리의 내부 구현을 동적 라이브러리에서 가져와 실행하여 라이브러리가 변경돼도 컴파일하지 않고, 라이브러리를 공유하여 메모리 절약
'C++' 카테고리의 다른 글
C++ 상등성, 동등성 (0) | 2024.08.19 |
---|---|
C++ Name Mangling, extern "C" (0) | 2024.08.19 |
C++ STL (0) | 2024.08.17 |
C++ 템플릿 메타 프로그래밍 (0) | 2024.08.06 |
C++ 자료형 크기 및 범위 (0) | 2024.07.25 |