언어/C++

[C++] 프로그램 실행 순서

겜도리도리 2022. 7. 13. 18:27
반응형

개요

C++의 프로그램 실행 순서에 대해 서술한다.

일반적으로 소스 파일 작성 - 전처리기 - 컴파일 - 링킹 - 로딩 - 실행의 단계를 따른다.

소스 파일 작성

에디터를 사용해 프로그램을 작성한다.

이렇게 C++ 문법에 맞게 작성된 프로그램을 원시 파일, 소스 파일이라고 한다.

소스 파일의 확장자의 대부분은 .cpp가 된다.

전처리

컴파일하기 전에, 컴파일러가 작업하기 좋도록 소스를 재구성한다. 코드를 추가로 생성하지는 않는다.

#include에 지정된 내용을 복사하고, #define에 정의된 매크로를 치환한다.

#if, #ifdef, #pragma 등의 구문들도 처리한다.

컴파일

컴퓨터는 0과 1만 인식할 수 있기 때문에, 소스 파일을 기계어로 변환해야 한다. 컴파일러는 코드들을 어셈블리어로 바꾸어준다.

어셈블

어셈블리어 코드들을 기계어로 바꿔준다.

어셈블 과정이 끝나면 목적 파일이 생성된다. (.o, .obj)

 

전처리, 컴파일, 어셈블 단계를 모두 합쳐서 컴파일 단계라고도 한다.

링킹

목적 파일과 외부 라이브러리 파일들을 모아 실행 파일을 생성한다.

링킹 과정이 끝나면 시스템에 따라 각기 다른 형태의 파일들을 생성하게 되는데, 윈도우의 경우 PE 파일 형식의 파일을 생성한다. (우리가 흔히 생각하는 .exe 파일이다.)

반응형