컴파일과 실행

컴파일 단계 흐름

오류 메시지를 제대로 읽으려면 어느 단계에서 실패했는지 먼저 구분해야 합니다.

전처리

include와 매크로 처리

헤더 내용을 가져오고 조건부 컴파일을 적용해 컴파일러가 볼 소스를 만듭니다.

preprocess
컴파일

목적 파일 생성

문법과 타입을 검사하고 각 소스 파일을 기계어에 가까운 목적 파일로 바꿉니다.

.cpp -> .obj
링크

정의와 라이브러리 연결

여러 목적 파일과 라이브러리의 심볼을 맞추어 하나의 실행 파일로 묶습니다.

link symbols
실행

런타임 동작 확인

파일 접근, 입력 값, 메모리 접근처럼 실행 중 조건에 따라 오류가 드러납니다.

run / exit code
컴파일 오류세미콜론 누락, 타입 불일치, 선언되지 않은 이름처럼 실행 파일이 만들어지기 전에 잡힙니다.
링크 오류선언은 보였지만 실제 정의가 없거나 라이브러리 연결이 빠졌을 때 발생합니다.
런타임 오류빌드는 성공했지만 잘못된 입력, 범위 초과, 파일 없음 같은 상황에서 실행 중 실패합니다.