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

+ Recent posts

목차