C언어 컴파일 과정
전처리기(preprocessor)
→컴파일러(compiler)
→어셈블러(assembler)
→링커(linker)
전처리 과정(preprocessing)
- 컴파일하기 전에 처리할 작업들
- 외부에 선언된 소스 코드, 라이브러리 포함 (ex. #include)
- 매크로 변환 (ex. #define)
- 컴파일할 영역 명시 (ex. #if, #ifdef, ...)
컴파일 과정 (compiling)
- 전처리가 완료 되어도 여전히 소스 코드
- 전처리 완료된 소스 코드를 저급 언어(어셈블리 언어)로 변환
어셈블 과정 (assembling)
- 어셈블리어를 기계어로 변환
- 목적 코드(object file)를 포함하는 목적 파일이 됨
목적 파일 vs 실행 파일
- 둘 다 기계어로 이루어진 파일
- 하지만 목적 파일과 실행 파일은 다름
- 목적 파일에서
링킹(linking)
을 거친 후 실행 파일이 됨 (링킹은 외부 기능들을 연결 짓는 작업)
<출처>
"혼자 공부하는 컴퓨터구조+운영체제".강민철.https://www.youtube.com/playlist?list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl (2023.04.04)
책과 강의를 통해 학습한 내용을 요약 정리했습니다.