나만의 작은 도서관
[C++][Build] 빌드와 빌드의 각 단계 본문
빌드(Build)란?
- 빌드란 프로그래밍 언어로 작성된 코드를 실행 가능한 프로그램으로 만드는 전체 과정을 의미한다.
- C++에서의 빌드는 헤더 파일(.h)이나 소스 파일(.cpp) 등에 작성된 코드들을 하나의 실행 파일(.exe과 같은)로 변환하는 과정이다.
C++ 빌드의 각 단계 (4단계)
- C++에서 빌드는 크게 4가지 단계로 구성되며, 각 단계는 아래와 같다.
- 전처리(Preprocessing) 단계: #include나 #define같은 전처리 지시어들을 처리한다.
- 컴파일(Compile) 단계: 각각의 소스 파일(.cpp)의 코드들을 어셈블리 코드로 변환한다. (file.cpp → file.s)
- 어셈블(Assemble) 단계: 어셈블리 코드들을 실제 기계어로 이루어진 목적 코드로 변환한다. (file.s → file.o)
- 링킹(Linking) 단계: 여러 목적 파일(.o)들을 하나의 실행 파일(.exe)로 만든다. (file.o → file.exe)
- 위 빌드의 4가지 단계 중, 1~3단계(전처리 → 컴파일 → 어셈블)를 묶어 컴파일이라고 표현하기도 하며, 어셈블 단계는 생략될 수 있다.
컴파일과 빌드의 차이
- 컴파일과 빌드는 혼용하여 사용하기도 한다. 하지만 위 글에서 알 수 있듯, 컴파일은 빌드 과정의 일부이며, 빌드는 컴파일을 포함한 더 넓은 개념이다. 표로 정리하라면 아래와 같다.
항목 | 설명 |
컴파일 | 소스 코드를 기계어 또는 중간 언어로 변환하는 과정 |
빌드 | 컴파일을 포함하여 실행 가능한 소프트웨어를 생성하는 전체 과정 |
참고 자료
'C++ > 문법 및 메소드(STL)' 카테고리의 다른 글
[C++][Build] 전처리 단계 - #pragma 지시문 (0) | 2025.04.14 |
---|---|
[C++][Build] 전처리 단계 - 전처리기 지시문(preprocessor directive) (0) | 2025.04.14 |
[C++] extern 키워드와 전역 변수 (0) | 2025.04.09 |
[C++] 스마트 포인터(Smart Pointer) (0) | 2025.04.06 |
[C++][Callback] #4. 람다 표현식(Lambda Expression) (0) | 2025.04.03 |