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 |