GCC(GNU Compiler Collection) 는 GNU 프로젝트에서 개발한 다중 언어 지원 컴파일러 집합이다. 처음에는 C 언어만 지원했지만, 현재는 C++, Objective-C, Fortran, Ada, Go 등 다양한 언어를 컴파일할 수 있다.
리눅스나 유닉스 계열 시스템에서 기본으로 제공되는 컴파일러이기도 하다.

$ gcc -g -o <실행파일명> <소스파일명> ...
$ gcc -g -o hello hello.c
| 옵션 | 설명 |
|---|---|
-o | 출력 파일 이름 지정 |
-Wall | 경고 메시지 전체 표시 |
-g | GDB용 디버깅 정보 포함 |
-O0 ~ -O3 | 최적화 레벨 |
-S | 어셈블리 코드 출력 |
-E | 전처리 결과만 출력 |
-c | 링킹 없이 컴파일까지만 수행 |
gcc는 C 전용 컴파일러이며, .c 파일 컴파일에 사용된다.
g++는 C++ 전용 컴파일러로, .cpp 파일 컴파일 시 C++ 표준 라이브러리를 자동으로 링크한다.
C++ 코드를 gcc로 컴파일하면 링크 오류가 발생할 수 있으므로 반드시 g++를 사용하는 것이 좋다.
GCC는 단순한 C 컴파일러가 아니다. 리눅스 커널, 시스템 프로그래밍, 임베디드 개발 등 다양한 분야에서 핵심 개발 도구로 사용된다. 컴파일 과정을 명확히 이해하면 디버깅, 성능 개선, 오류 분석 능력도 함께 향상된다.