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++라고 한다.
'Unix & Linux' 카테고리의 다른 글
원론적인 이야기를 해보자, 리눅스의 역사 ( UNIX, LINUX ?? ) (0) | 2022.01.21 |
---|---|
우분투 텔레그램 봇 만들기 (UBUNTU / TELEGRAM BOT ) (0) | 2022.01.07 |
리눅스, 쉘 스크립트 (1) - Hello world (0) | 2021.06.17 |
리눅스, 32비트? 64비트 확인 방법 (0) | 2021.06.14 |
우분투(UBUNTU), VNC 설치하기 ( Tigervnc ) (22.04 동작확인) (1) | 2021.06.10 |