1. GCC (GNU Compiler Collection)
ㅇ 리눅스(Linux) 환경에서, 각종 프로그래밍 언어 소스를 컴파일하기 위한 컴파일러 기능 제공 환경
- 컴파일 가능 언어 例) C, C++, Objective C, Fortran, Pascal, Ada, Java 등
- 실행가능 타깃 머신 例) Intel, ARM, PowerPC, Motorola, Sparc 등
2. GCC 특징
ㅇ 폭넓은 언어,타깃 머신들을 지원하기 위해, 모듈식으로 설계됨
- Front-end : 각 언어별로 Scanner, Parser 구현
- Mid-end : 코드 최적화(Code Optimization) 구현
- Back-end : 코드 생성(Code Generation)
- 최종 출력물은, 어셈블리 언어 형태 임
3. 사용 방식
ㅇ 사용 例)
- gcc 소스파일명 => a.out
- gcc 소스파일명 -o 실행파일명
- g++ 소스파일명 -o 실행파일명 : (C++ 언어 컴파일)
ㅇ 옵션 例)
- E : 전처리 만 수행한 결과를 표준 출력(stdout)에 보여 줌
- O1, O2, O3 : 코드 최적화
- std : 각 언어별 표준 심볼
- Wall : 발생 가능 모든 오류에 대한 경고
- l : 표준 라이브러리가 아닌 라이브러리를 사용하려고 할 때, 그 라이브러리를 지정해줌
* gcc 컴파일러 옵션 온라인 보기 ☞ GCC Option Index
ㅇ gcc에 포함된 프로그램들
- cpp : 전처리기
- cc1 : 컴파일러
- as : 어셈블러
- ld : 링커