Unix & Linux

GCC ( GNU Compiler Collection ) 는 무엇인가?

LEEHANDS 2022. 1. 6. 14:25
반응형

GNU(GNU is Not Unix) 프로젝트의 프리웨어(freeware) 컴파일러. 본래 C 언어용 컴파일러로 시작하였으므로 GNU C Compiler의 약자였으나 2.9 버전에 이르러 C뿐만이 아니라 오브젝티브(Objective) C, 파스칼(Pascal), 에이다(Ada)와 같은 언어도 지원하였으므로 GNU Compiler Collection으로 개명하였다. GNU/Linux부터 Solaris 2, 윈도즈 NT에 이르기까지 수많은 운영 체계(OS)를 지원할 정도로 높은 호환성을 가지고 있다. 또한 자동 레지스터 할당, 반복되는 코드 제거, 상수 곱셈 최적화 등 매우 많은 최적화를 수행하는 컴파일러이다.


GNU 프로젝트의 오픈 소스 컴파일러 컬렉션. 유닉스/리눅스 계열 플랫폼의 사실상 표준 컴파일러다.

리처드 스톨먼이 1987년에 만들었다.

처음에는 C 컴파일러였으며 'GNU C Compiler'의 약어였다. 하지만 기능이 추가되면서 C++ 같은 다른 언어도 지원하게 되었고,

'GNU Compiler Collection'으로 이름을 변경하였다.

물론 약어는 여전히 GCC이다.

공식적으로 지원하는 언어는 C, C++, Objective-C, Fortran, Ada, Go이다.

Java는 GCC 7.1 버전부터 지원이 중단되었다.

GNU 진영에서는 GCC로 컴파일을 하고 Make를 이용해 빌드하는 것이 일반적이다.

원래는 C로 구현되었으나 2013년에 구현 언어를 C++로 모두 변경하였다.

# 만들어진지 수십년 된 컴파일러라 최적화는 매우 잘 되어 있지만,

기존 코드의 구조가 시대적 한계로 인해 오늘날 관점에서는 상당히 더러워서 신규 인력이 거의 유입되지 않았기 때문이다.


C++용 GCC는 gcc-c++ 혹은 g++라고 한다.

 

 

반응형