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) |
![]() ![]() |
각기 다른 목적 코드를 하나의 실행 파일로 연결, 묶어주는 작업 |
'Computer > CS' 카테고리의 다른 글
CPU ② 레지스터 (1) | 2024.01.04 |
---|---|
CPU ① ALU와 제어장치 (1) | 2024.01.04 |
명령어의 구조(연산코드, 오퍼랜드)와 주소 지정 방식 (1) | 2024.01.03 |
소스 코드와 명령어 - 저급 언어, 고급 언어 (0) | 2024.01.03 |
컴퓨터가 이해하는 데이터② - 문자 표기 (아스키 코드,EUC-KR에서 utf-8 인코딩까지) (1) | 2024.01.02 |