GNU 컴파일러 모음
GNU 컴파일러 모음(GNU Compiler Collection, 줄여서 GCC)는 GNU 프로젝트의 일환으로 개발되어 널리 쓰이고 있는 컴파일러이다.
개발자 | GNU 프로젝트 |
---|---|
발표일 | 1987년 3월 22일[1] |
안정화 버전 | 14.2[2]
/ 2024년 8월 1일 |
저장소 | |
프로그래밍 언어 | C, C++ (2010년 6월 1일 이후)[3] |
운영 체제 | 크로스 플랫폼 |
종류 | 컴파일러 |
라이선스 | GNU GPL |
웹사이트 | gcc |
자유 소프트웨어 중에 가장 잘 알려진 것들 중 하나인 GCC는 원래 C만을 지원했던 컴파일러로 이름도 "GNU C 컴파일러"였다. 이러한 까닭에 현재에도 GCC는 GNU 컴파일러 모음의 일부인 GNU C 컴파일러(GNU C Compiler)의 줄임말로 쓰이는 편이다. 그러나 나중에 C++, 자바, 포트란, 에이다 등 여러 언어를 컴파일할 수 있게 되면서 현재의 이름으로 바뀌게 되었다.
개요
편집GCC는 리처드 스톨만이 1987년 GNU 프로젝트의 컴파일러로 작성했다. GNU 프로젝트에 컴파일러가 없었기 때문에 이 개발은 자유 소프트웨어 재단이 후원하였다. 1997년 개발 과정은 공개되었으며 속도 또한 빨라졌다. 1999년 첫 버전이 나왔다. 현재 GCC는 전 세계적으로 관리되고 있으며 다양한 중앙 처리 장치를 처리할 수 있게 되었다.
GNU 시스템의 공식 컴파일러이므로 GCC는 많은 컴파일러와 운영 체제를 만드는 데 사용되었다. 한편, 시스템 네이티브 컴파일러를 사용했을 때 비해서 GCC를 사용하면 같은 파서로 코드를 처리하므로 이식성을 향상시킬 수 있다. GCC는 상용 컴파일러에 비해서 느린 코드를 생성했지만 최근 많이 개선되었다.
지원 프로그래밍 언어
편집4.6 이후의 표준 컴파일러 릴리즈에는 C (gcc
), C++ (g++
), 오브젝티브 C, 오브젝티브 C++, 포트란 (gfortran
), 자바 (gcj
), 에이다 (GNAT), 고 (gccgo
)를 위한 프론트엔드가 포함되어 있다.[4] 또한 이용은 가능하지만 표준에는 포함되지 않은 것으로 파스칼 (gpc
), 머큐리, Modula-2, Modula-3, PL/I, D (gdc
),[5] VHDL (ghdl
)가 있다. 잘 알려진 병렬 언어 확장 OpenMP도 지원한다.
포트란 프론트엔드는 포트란 77만 지원했던 버전 4.0 이전까지 g77
였다. 새로운 버전에서 g77
는 포트란 2003의 일부와 포트란 95를 지원하는 새로운 gfortran
프론트엔드를 선호하게 되면서 지원이 중단되었다.[6] 나중의 포트란 표준이 F77 표준을 포함하면서 표준 호환 F77 코드가 표준 호환 F90/95 코드가 되어 gfortran에서 문제 없이 컴파일이 가능하다. CHILL을 위한 프론트엔드는 유지 보수 부족으로 개발이 중단되었다.[7]
일부 실험적인 브랜치들은 추가적인 언어들을 지원하기도 하는데, 이를테면 GCC UPC 컴파일러가 있다.[8]
지원 아키텍처
편집버전 4.3을 기준으로 GCC는 다음의 프로세서 계열을 대상으로 한다:
표준 릴리즈에서 지원되는, 위보다 잘 알려지지 않은 프로세서는 다음을 포함한다:
FSF 버전과는 별개로 GCC 버전이 지원하고 있는 추가 프로세서들은 다음과 같다:
gcj 자바 컴파일러는 순수 기계어 아키텍처나 자바 가상 머신의 자바 바이트코드만을 대상으로 할 수 있다.[11] 새로운 플랫폼으로 GCC의 대상으로 변경할 때에는 bootstrap이 자주 쓰인다.
호환 IDE
편집리눅스 및 일부 운영 체제용으로 개발된 대부분의 통합 개발 환경은 GCC를 지원한다. 이를테면 다음을 포함한다.
버전 역사
편집
|
|
같이 보기
편집참고 자료
편집- Richard M. Stallman: Using and Porting the GNU Compiler Collection, Free Software Foundation, ISBN 0-595-10035-X
- Richard M. Stallman: Using Gcc: The Gnu Compiler Collection Reference, Free Software Foundation, ISBN 1-882114-39-6
- Brian J. Gough: An Introduction to GCC, Network Theory Ltd., ISBN 0-9541617-9-3
각주
편집- 참조주
- ↑ “GCC Releases”. GNU Project. 2023년 6월 4일에 원본 문서에서 보존된 문서. 2020년 7월 24일에 확인함.
- ↑ “GCC 14.2 Released”. 2024년 8월 1일. 2024년 8월 1일에 확인함.
- ↑ “GCC allows C++ – to some degree”. The H. 2010년 6월 1일.
- ↑ "GCC Front Ends" Archived 2014년 2월 9일 - 웨이백 머신, gnu.org, Retrieved November 25, 2011.
- ↑ “gdc project on bitbucket”. 2010년 7월 3일에 확인함.[깨진 링크(과거 내용 찾기)]
- ↑ “Fortran 2003 Features in GNU Fortran”. 2014년 1월 2일에 원본 문서에서 보존된 문서. 2014년 1월 1일에 확인함.
- ↑ [https://web.archive.org/web/20120305214233/http://gcc.gnu.org/ml/gcc-patches/2002-04/msg00887.html Archived 2012년 3월 5일 - 웨이백 머신 [PATCH] Remove chill], gcc.gnu.org, Retrieved July 29, 2010.
- ↑ “GCC UPC (GCC Unified Parallel C) | http://www.gccupc.org/”. http://www.gccupc.org/<!. 2006년 2월 20일. 2010년 2월 11일에 원본 문서에서 보존된 문서. 2009년 3월 11일에 확인함.
|publisher=, |title=
에 외부 링크가 있음 (도움말) - ↑ “Hexagon Project Wiki”. 2013년 12월 24일에 원본 문서에서 보존된 문서. 2014년 1월 1일에 확인함.
- ↑ “sx-gcc: port gcc to nec sx vector cpu”.
- ↑ “The GNU Compiler for the Java Programming Language”. 2012년 8월 31일에 원본 문서에서 보존된 문서. 2010년 4월 22일에 확인함.
- ↑ GCC Releases, gnu.org. Accessed on line Mar. 26, 2014.
- ↑ GCC Development Plan, gnu.org. Accessed on line Mar. 26, 2014.
- ↑ Downloading GCC, gnu.org, archived by archive.org as of November 20, 2001. Accessed on line March 26, 2014.
- 내용주
- ↑ Support added for the Go language.
- ↑ Fortran front end changed from g77 to gfortran.
- ↑ Added Ada compiler (gnat).
- ↑ CHILL compiler removed.
- ↑ Included front ends for C, C++, Objective C, CHILL, Fortran (g77), and Java (gcj).
- ↑ Added FORTRAN front end (g77). However, g77 was not included with releases 2.8.0 or 2.8.1.
- ↑ Supported C, C++, and Objective C. Prior to this the C++ compiler was released separately from the C compiler.
외부 링크
편집- (영어) GNU 컴파일러 모음 - 공식 웹사이트
- (영어) GCC 매뉴얼 목록
- (영어) GCC 위키