728x90

컴파일러 : 소스코드를 중간코드로 변환한다.

링커 : 중간코드 + 다른코드 => 실행파일을 만든다.

 

컴파일링과 링킹을 통해 프로그램 모듈화

 

링커는 이미 컴파일 된 라이브러리 코드를 가져와 프로그램에 결합한다.

 

중간파일은 오브젝트 파일이다. (file.o)

 

오브젝트 ㅍ일은 소스코드를 기계어 코드로 단순히 번역한 것일 뿐 아직 완전한 프로그램이 아니다.

(오브젝트 파일 + 다른 코드 => 실행파일)

                         ↓

다른코드 1. 시동코드

시동코드는 프로그램과 운영체제 사이의 인터페이스를 담당한다. 

->ex)window와 linux 모두 같은 하드웨어에서 운영되므로 동일한 오브젝트 코드가 두운영체제에서 모두 동작하나 두운영체제는 프로그램을 처리하는 방식이 다르기 때문에 각자에게 맞는 시동코드가 필요하다.

 

다른코드 2.라이브러리 루틴을 위한 코드

-> ex) printf()또한 실제코드는 라이브러리 (stdio.h) 안에 있다.

 

링커의 역할은 오브젝트 코드, 사용하는시스템에 맞는 시동코드, 라이브러리 코드를 묶어서 하나의 실행파일로 만드는 것이다.

 

소스코드 -> 컴파일러 -> 오브젝트 코드 -> 링커(시동코드, 라이브러리 코드) -> 실행 코드

a.out -> 실행파일

728x90

'Programming > C' 카테고리의 다른 글

C언어 공부 4  (0) 2019.04.28
C언어 공부 3  (0) 2019.04.28
프로그래밍 연습 1  (0) 2019.04.28
C언어 공부 2  (0) 2019.04.28
C 데이터  (0) 2018.12.28

+ Recent posts