리눅스 컴파일 과정

CODEDRAGON Development/Software Engineering

반응형



 

 

리눅스 컴파일 과정

 

 


 

과정

설명

전처리

·         Hello.c 에서 Hello.i 처리되는 과정입니다.

·         전처리기인 cpp0 또는 cc1–E라는 명령어를 이용합니다.

·         소스 파일에서 주석을 제거하고 #define, #include #으로 정의 전처리부분을 처리한 C언어 소스파일(*.i) 생성합니다.

컴파일

·         Hello.i 에서 Hello.s 처리되는 과정입니다.

·         cc1이라는 컴파일러 이용합니다.

·         소스에서 호출된 라이브러리를 참조하여 소스코드를 어셈블러 코드로 변환하는 과정입니다.

어셈블리

·         Hello.s 에서 Hello.o 처리되는 과정입니다.

·         as collect2 라는 어셈블러 이용하여, 어셈블러 코드가 기계어로 변환되는 과정입니다.

·         Hello.o 목적파일(Object File)이라고 하는데, 기계어지만 실행이 되지는 않습니다.

링크

·         Hello.o Hello.out 이라는 실행파일 처리되는 과정입니다.

·         id라는 링커를 이용하여 목적코드를 실행에 필요한 다른 목적 파일과 연결되어 실행될 있도록 처리됩니다.