C언어에서 실행파일을 생성하는 순서는 다음과 같다.
1. 소스 파일(source file)의 생성
2. 선행 처리기(preprocessor)에 의한 선행 처리
3. 컴파일러(compiler)에 의한 컴파일
4. 링커(linker)에 의한 링크
5. 실행 파일(executable file)에 의한 생성
- 소스 파일(source file)의 생성 -
프로그래밍을 하면서 가장 먼저해야 할 일은 프로그램을 작성하는 것이다. C언어를 사용하여 문법에 맞게 논리적으로 작성된 프로그램을 원시 파일 또는 소스 파일이라고 한다. C언어를 통해 작성된 소스파일의 확장자는 .C가 된다.
- 선행 처리기(preprocessor)에 의한 선행 처리 -
선행 처리기란 소스 파일 중에서도 선행처리 문자(#)로 시작하는 선행 처리 지시문의 처리 작업을 의미한다. 이런 선행 처리 작업을 선행 처리기가 수행한다. 선행 처리기는 코드를 생성하지는 않고, 컴파일 하기 전에 컴파일러가 작업하기 좋도록 소스를 재구성하는 역할만 한다.
- 컴파일러(compiler)에 의한 컴파일 -
컴퓨터는 0과 1로 이루어진 이진수로 작성된 기계어만을 이해할 수 있는데, 우리가 작성하는 코드는 C언어이기 때문에 컴퓨터가 제대로 이해할 수 없다. 따라서 소스 파일을 컴퓨터가 이해할 수 있게 바꿔야 하는데, 그 작업을 컴파일(compile)이라고 한다. 컴파일은 컴파일러에 의해 수행되며, 컴파일이 끝나고 기계어로 변환된 파일을 오브젝트 파일(object file)이라고 한다. 이런 오브젝트 파일의 확장자는 .o나 .obj이 된다.
- 링커(linker)에 의한 링크
위에서 생성된 오브젝트 파일(object file)은 운영 체제와의 인터페이스를 담당하는 시동코드(start-up code)를 가지고 있지 않다. 또한, 대부분의 C 프로그램에서 사용하는 C 표준 라이브러리 파일도 포함되어 있지 않다. 이때, 하나 이상의 오브젝트 파일과 라이브러리 파일, 시동 코드 등을 합쳐 하나의 파일로 만드는 것을 링크(link)라고 한다.
링크는 링커(linker)에 의해 수행되며, 링크가 끝나면 하나의 새로운 실행 파일이나 라이브러리 파일이 생성된다. 이처럼 여러 개의 소스 파일을 작성하여 최종적으로 링크를 통해 하나의 실행 파일로 만드는 것을 분할 컴파일이라고 한다.
- 실행 파일(executable file)의 생성 -
소스 파일은 선행처리기, 컴파일러, 링커에 의해 위와 같은 과정을 거쳐 실행 파일로 변환된다. 최근 사용되는 개발 툴은 위에서 소개한 선행처리기, 컴파일러, 링커를 모두 내장하고 있으므로, 소스 파일에서 한번에 실행파일을 생성해준다.
이렇게 만든 파일의 확장자는 .exe가 된다.
출처: TCP SCHOOL.com
'컴퓨터 이야기 > C++ 이야기' 카테고리의 다른 글
[독학] 헷갈리는 개념 2 (0) | 2021.09.03 |
---|---|
[독학] #define (0) | 2021.09.02 |
[독학] 반복문의 종류와 사용 (0) | 2021.09.01 |
[독학] 삼항 연산자에 의한 조건문 (0) | 2021.09.01 |
[독학] 논리 연산자 (logical operator) (0) | 2021.09.01 |