1. CS - 컴퓨터 구조(6)
- C언어의 컴파일 과정
- 전처리기(Preprocessor)
- 본격적으로 컴파일하기 전에 처리할 작업들을 말함
- 외부에 선언된 다양한 소스코드, 라이브러리를 포함함(e.g. #include)
- 프로그래밍의 편의를 위해 작성된 매크로 변환(e.g. #define)
- 컴파일할 영역 명시함(e.g. #if, #ifdef, …)
- 컴파일러(Compiler)
- 전처리가 완료 되어도 여전히 소스코드가 있음
- 전처리 완료된 소스코드를 저급언어(어셈블리어 언어)로 변환함
- 어셈블러(Assembler)
- 어셈블리어를 기계어로 변환된다는 의미
- 목적 코드(Object File)를 포함하는 목적 파일이 된다는 의미
- 목적파일?
- 기계어로 이루어진 파일임
- 링킹((Linking))을 거치는 것을 말함
- 실행파일?
- 기계어로 이루어진 파일임
- 목적파일이 **링킹(Linking)**을 거친 이후에 실행되는 파일을 말함
- 링킹(Linking)
- 여러개의 코드와 데이터를 모아서 연결하는 것을 말함
- 컴파일 이후, 실행하기 이전에 작성한 프로그램이 사용하는 다른 프로그램이나 라이브러리를 가져와 연결하는 과정을 말함
- 링커(Linker)
- 링킹을 담당하믄 프로그램을 말하며, 독립적인 컴파일을 가능하게 하는 아주 중요한 역할을 담당함
- 모듈 중 한 개를 변경한다고 가정하면, 다른 파일들을 재컴파일할 필요 없이 이 파일만을 간단히 재컴파일하고 다시 링크하여 변경사항을 적용함을 말함