소스 코드가 명령어가 되기까지

헨도·2024년 12월 1일
0

CS + 운영체제

목록 보기
4/5
post-thumbnail

컴파일 과정

test.c->전처리기->컴파일러->어셈블러->링커->test.exe

1. 전처리 과정 (preprocessing)

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

2. 컴파일 과정 (compiling)

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

3. 어셈블 과정 (assembling)

  • 어셈블리어를 기계어로 변환
  • 목적 코드(object file) 를 포함하는 목적 파일이 됨
목적 파일 vs 실행 파일
목적 파일과 실행 파일은 둘 다 기계어로 이루어진 파일
But, 목적 파일과 실행 파일은 다르다.
목적 파일은 링킹(linking)을 거친 이후에 실행 파일이 됨

4. 링킹(linking)

  • 여러개의 코드와 데이터를 모아서 연결하여 메모리에 로드될 수 있고,
    실행될 수 있는 한개의 파일로 만드는 작업
profile
Junior Backend Developer

0개의 댓글