GCC


GNU Compiler Collection
공식 페이지

1 개요

GNU 프로젝트의 오픈소스 컴파일러 컬렉션. 리눅스 등 오픈소스 플랫폼의 De-Facto Standard 컴파일러. 리처드 스톨만이 1987년 GNU 프로젝트의 컴파일러로 만들었다.

처음에는 C 컴파일러였으며 'GNU C Compiler'의 약어였다. 하지만, 기능이 추가되면서 C++ 같은 다른 언어도 지원하게 되었고, 'GNU Compiler Collection'으로 이름을 변경하였다. 물론 약어는 여전히 GCC 이다. 지원하는 언어는 C, C++, Objective-C, Fortran, Java, Ada, Go 이다.

만들어진지 수십년된 컴파일러라 최적화는 매우 잘되어있지만, 당시 시대의 한계로 인해 오늘날 기준으로 보면 구조 자체가 상당히 더러워서 신규인력이 잘 유입되지 않는 경향이 있다고 한다. 덕분에 2012년 8월 구현언어를 C++ 로 바꾼다고 선언하였다.

리눅스 플랫폼 이외에 임베디드 프로그래밍을 할 때에도 크로스 컴파일링을 이 녀석으로 하는 경우가 많으며, Min-GW라는 윈도우용 Fork도 존재하여 여러 오픈 소스 프로젝트 프로그램들을 윈도우에서 돌아가게 하는 데 일조하고 있다. 다만 4.2 버전부터 라이센스가 GPL3로 바뀌면서 BSD 라이센스와 호환이 불가능하게 되어버려 BSD 진영과 BSD의 영원한 친구 애플은 대경실색하고 LLVM/Clang 으로 급거 갈아타는 중.

2 여담

참고로 gcc 개발자들과 커널 개발자들과의 사이는 별로 좋지 않다. 이유는 gcc C컴파일러의 최적화 때문에 코드가 박살나는 경우가 많기 때문 (...) 그래서 인라인 어셈블리를 꼭 써야할 경우가 많다.