본문 바로가기

공부/c언어

컴파일 과정

반응형

[그림 07-1]

 

 

1단계 전처리 cpp
코드 상단에 시작되는 #으로 시작하는 것을 전처리 부분이라고 합니다.
전처리 부분을 처리하기 위한 과정을 거쳐 파일.i로 임시파일을 생성해줍니다.
 

 2단계 컴파일 단계 cc1
 전처리된 파일.i 를 컴파일하는 과정입니다. 이 과정을 거치게 되면 어셈블리 로 바꿔주게 됩니다.

 

 3단계 어셈블리 단계 as
 파일.s를 오브젝트 파일로 변환하는 과정입니다.

 

 4단계 링크 단계 id
 오브젝트 에서 링크 단계를 거쳐서 실행파일을 만드는 과정입니다.

 

링크

간단한 프로그램의 경우에, 목적파일인 오브젝트 파일이 하나 만 나옵니다만...

제작하는 프로그램의 규모에 따라서, 목적파일은 다수가 생겨나오게 됩니다...

링킹 이라는 것은, 링크하는것   즉, 링크 작업을 하는것, 이라는 의미로 사용되는 말입니다...

linking이란 이러한 파일들이 목적파일로 만들어 지면서 c를 중심으로 여러 부가적인 파일들을 이어주는 연결고리가 생성되는 것을 말합니다.

함수나 변수가 호출될 때 찾아 가야할 상대주소를 표를 통해서 저장하고 있음

 

로더

프로그램과 DLL([dynamic linking library])을 램(메모리)에 올리는 작업을 함

DLL을 원할 때 램에 올렸다가 내렸다가 함

DLL이 램에 올라와서 있는 주소(함수포인터)를 찾아내고 DLL에서 필요한 위치의 주소(함수포인터)에 매개변수를 붙여서(함수) 호출하여 DLL을 실제로 이용하게 함  

반응형