본문 바로가기
Ubuntu

GNU/GCC/G++ 컴파일러

by junhykim 2023. 1. 27.

GNC 컴파일러란?

공개 소프트웨어 프로젝트인 개인이나 단체에 구속 되지 않는 자유 형식을 띄는 GNU Project의 일환으로 제작 된 컴파일러

 

GCC 컴파일러란?

GCC란 GNU Compiler Collection의 약자로 C언어만 지원하는 GNU C Compiler에서 발전하여 C++ 언어도 컴파일 가능하도록 지원함

 

G++(GNU C++ Compiler)

C++언어용 컴파일러, GNU C++ Compiler의 약자, .C 파일과 .CPP 파일 모두 C++ 언어로 컴파일

 

 

Compile Process

 

소스 코드의 컴파일 과정은 위와 같은 과정을 거치면서 변환됨

.c .s .o .out

 

Preprocessor(전처리기) a.i

코드 작성 시 #으로 시작하는 전처리기 구문을 처리하게 됨. 단순 치환으로 이루어지기 때문에 원치 않는 연산 순서 변경을 막기 위해 항상 매크로 구문이나 전처리 구문에 괄호를 추가함

 

#include로 특정 파일 포함하라는 명령

 

Compiler(컴파일러) - a.s

컴파일러는 우리가 작성한 고수준 언어를 저수준의 언어(Assembly)로 번역하는 역할. 어셈블리어로 바꾸는 알고리즘에 따라서 컴파일러의 성능이 달라짐.

 

Assenbler(어셈블러) - a.o

어셈블러는 어셈블러어를 완전한 기계어로 변역함, 이 결과물을 object파일 또는 binary 파일이라고 함

 

Linker(링커) - a.out

여러가지 파일을 함께 엮어서 프로젝트로 만들 때 파일들과 라이브러리를 하나로 엮는 역할

 

 

https://velog.io/@d2h10s 참조

'Ubuntu' 카테고리의 다른 글

C 기본 함수  (0) 2022.11.22