빼미의 개발일기

[컴퓨터구조] - 8강. 추가 : C언어의 컴파일 과정 본문

프로그래밍/컴퓨터 구조

[컴퓨터구조] - 8강. 추가 : C언어의 컴파일 과정

빼미01 2023. 7. 22. 13:21
이 글은 한빛미디어 '혼자 공부하는 컴퓨터 구조 + 운영체제'를 공부하고 정리한 내용입니다.

 

- C언어 컴파일 과정

전처리기(Preprocessor) -> 컴파일러(Compiler) -> 어셈블러(Assembler) -> 링커(Linker)

 

1. 전처리 과정 :

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

2. 컴파일 과정 :

  • 전처리가 완료 되어도 여전히 소스 코드
  • 전처리 완료된 소스 코드를 저급언어(어셈플리 언어)로 변환

3. 어셈블 과정 :

  • 어셈블리어를 기계어로 변환
  • 목적 코드(Object File)를 포함하는 목적 파일이 된다.

◆ 목적 파일 vs 실행 파일

  • 목적 파일과 실행 파일은 둘 다 기계어로 이루어진 파일
  • But, 목적 파일은 링킹(Linking)을 거친 이후에야 실행 파일이 된다.

4. 링킹 과정 :

  • 연관되어 있는 기계어 파일들 간의 상호작용을 적용하는 과정
  • 다른 파일에 구현된 작업을 해당 파일에서 사용할 때
Comments