Machineboy空

C 언어 컴파일 과정 : 전처리(preprocess) - 컴파일(compile) - 어셈블(assemble) - 링크(link) 본문

Computer/CS

C 언어 컴파일 과정 : 전처리(preprocess) - 컴파일(compile) - 어셈블(assemble) - 링크(link)

안녕도라 2024. 1. 4. 11:00

다음과 같은 과정을 거쳐 실행파일이 된다

 

 

1

전처리기
(preprocessor)


본격적으로 컴파일 하기 전에 처리할 작업들
외부에서 선언된 다양한 소스 코드, 라이브러리 포함 (c의 #include)
프로그래밍의 편의를 위해 작성된 매크로 변환 (c의 #define)
컴파일할 영역 명시 (c의 #if, #ifdef ...)
2  컴파일러
(compiler)

전처리가 완료되어도 여전히 소스 코드이다.
이것을 컴퓨터가 이해할 수 있는 저급 언어(어셈블리 언어)로 변환하는 것
3 어셈블러
(assembler)
어셈블리어를 (0과  1로  이루어진)기계어로 변환하는 과정.
목적코드(object file)를 포함하는 목적 파일이 된다.

*목적 파일과 실행 파일은 둘 다 기계어로 이루어졌지만 다르다!
*목적 파일: 링킹(linking)을 거친 후에 실행 파일이 된다
4 링커
(linker)
각기 다른 목적 코드를 하나의 실행 파일로 연결, 묶어주는 작업