티스토리 뷰




컴파일러의 실행 단계

 

- 많은 수의 컴파일러는 다음과 같은 순서를 거쳐 소스 코드를 번역한다.

- 컴파일러의 특성상 일부 단계는 생략되거나 더 세부화가 될 수도 있다.

- C언어는 사용자가 제작한 소스 파일을 실행파일로 만드는데 1. Preprocess, 2. Compile, 3.Link 이 세 가지 과정을 거친다.

 

Preprocess(전처리)

- 소스파일 내부에 있는 전처리 명령을 수행하는 과정이다.

- 전처리 명령은 소스파일 내부에 ‘#’으로 시작되는 명령어들이며 이 명령어들은 Preprocessor(전처리기)가 이 명령어들을 수행하게 된다.

-전처리 명령어는 주로 소스파일을 컴파일 하기 전에 어떤 형태로 컴파일 할지 결정하거나, 소스코드의 가동성을 높이는 등의 역할을 수행하게 된다.

 

Compile(컴파일)

- 소스파일을 컴파일러를 이용해 기계어로 번역하는 과정이다.

- 번역하는 과정에서 C언어 문법에 맞지 않거나 표준을 따르지 않으면, 컴파일 에러나 경고를 발생시키고, 아무런 문제 없이 과정을 마치게 되면 기계어로 번역된 ‘*.obj’파일을 생성하게 된다.

 

 

Link(링크)

- 컴파일 과정에서 생성된 ‘*.obj’파일과 소스코드에서 사용되는 함수들이 들어있는 ‘*.lib’파일을 이용하여 실행 가능한 파일을 만드는 과정이다.

- 실행파일을 만드는 과정에서 소스코드가 사용하는 변수나 함수가 주어진 파일에 존재 하지 않을 경우 이 과정에서 오류가 있다고 알려주며, 아무런 문제없이 과정을 마치게 되면 실행이 가능한 ‘*.exe’파일을 생성한다.

 

-I 파일

- 전처리 과정인 #include, #define, #if와 같이 #으로 시작되는 전처리 단계를 거치면 소스명.i”라는 이름의 임시파일로 생성되지만 컴파일에 사용된 후 자동으로 삭제되어 디스크에 남지 않는다.

 

-오브젝트(OBJ)파일

- 목적 코드 또는 목적 파일은 컴파일러나 어셈블러가 소스 코드 파일을 처리하는 도중 만들어내는 코드의 대표이다.

(목적 코드 또는 목적 파일은 컴파일러나 어셈블러가 소스 코드 파일을 컴파일 또는 어셈블해서 생성하는 파일이다.)

- 목적 파일들은 "이진 파일"이라고 불리는 밀집된 코드를 포함하고 있다.

- 목적 파일에서 유일하게 필수적인 요소로는 기계어(컴퓨터의 CPU가 직접 실행하는 코드)가 있다.

 

 

Comments