안녕! 개발의 아들 개발子야.

 

오늘은 gcc라는 컴파일러에 대해서 알아볼게!

 

우선, gcc 컴파일은 TUI야. 그래픽이 있는 GUI와 다르게 text로 처리를 해. 

 

gcc 컴파일러 사용 모습

이런 느낌으로다가 말이지.

 

위의 사진에 gcc 201621085_Assignment3_problem1.c라는 구문의 의미는 뭘까?

 

201621085_Assignment3_problem1.c라는c언어 소스파일을 gcc 컴파일러를 이용해서 컴파일해준다는 의미!

 

여기서 혹시나 컴파일에 대해서 잘 모르는 사람이 있을 수도 있으니까 잠시 설명하고 갈게!

 

What is compile?


고급언어 -> 저급언어


인간이 이해하기 쉬운 언어를 고급언어(C/C++)라 하고, 컴퓨터가 이해하기 쉬운 언어를 저급언어(Machine Language)라 해.

 

예를 들면, 우리가 소스파일에 코딩한 소스코드를 machine language로 바꿔준다는 말이지!

 

쉽게 말해, 컴퓨터가 이해하기 쉬운 언어로 번역해주는것과 같은 말이야.

 

이 일을 도와주는 프로그램을 바로 컴파일러(compiler)라고 부르고, gcc도 컴파일러의 한 종류인 거지.


그런데!! gcc컴파일러는 컴파일만 해주는 것이 아닌, 아래의 여러 과정들을 거쳐줘!

 

gcc 컴파일러를 이용한 내부의 모습

위의 그림에 대해서 간략하게 설명하자면,

 

1. cpp(C pre processor)는 전처리기, 소스 파일의 주석 제거와 define을 치환!

 

2. cc(C compiler)는 컴파일러이며, 전처리기를 거친 소스 파일을 셈블리 파일로 변환!

 

3. as(Assembler)는 어셈블러이며, 어셈블리 파일을 오브젝트 파일로 변환!

 

4. ld(Linker)는 링커이며, 여러 오브젝트 파일들을 묶어서 실행 파일로 변환!

 

결론적으로 gcc 컴파일러는 201621085_Assignment3_problem1.c라는 소스파일을 실행 파일 생성해주는 역할을 한다!!

 

그리고 우리는 그 실행파일을 통해서 우리가 소스파일에 코딩한 소스코드가 출력된 결과물을 볼 수 있는 거야!!

BELATED ARTICLES

more