GCC(GNU Compiler Collection)
GCC는 GNU 프로젝트에서 만든 자유 소프트웨어 컴파일러 모음입니다. 원래는 C 언어 전용 컴파일러였지만, 지금은 C, C++, Objective-C, Fortran, Ada, Go 등 다양한 언어를 지원하는 다중 언어 컴파일러 도구 모음으로 발전했습니다.
GCC의 주요 특징
- 다양한 언어 지원: C, C++, Fortran, Go 등
- 플랫폼 독립성: 리눅스, 윈도우, macOS 등 다양한 운영체제에서 사용 가능
- 최적화 기능: 코드 실행 속도 향상을 위한 다양한 최적화 옵션 제공
- 오픈소스: 누구나 자유롭게 사용, 수정, 배포 가능
GCC의 주요 역할
- 전처리(PreProcessing): #include, #define 등을 처리
- 컴파일(Compiling): C코드 -> 어셈블리어로 변환
- 어셈블(Assembling): 어셈블리어 -> 목적 코드(.o)로 변환
- 링크(Linking): 여러 목적 파일과 라이브러리를 합쳐 실행파일 생성
이러한 전체 과정 hello.c -> hello.o -> hello의 과정을 한 줄의 명령어로 나타내면 다음과 같습니다.
gcc hello.c -o hello
자주 쓰는 GCC 옵션
옵션 | 설명 |
-o [파일명] | 출력 실행 파일 이름 지정 |
-Wall | 모든 일반적인 경고 메시지 출력 |
-g | 디버깅 정보 포함 |
-O2 | 중간 이상 수준의 최적화 (일반적으로 사용) |
-c | 컴파일만 수행하고 링크는 하지 않음 (.o 파일 생성) |
GCC 기본 설치 방법(Linux 기준)
sudo apt update
sudo apt install build-essential
build-essential에는 gcc, g++, make 등 기본 개발 도구가 포함되어 있습니다.
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] 5주차 개념 정리 (0) | 2025.04.15 |
---|---|
[CS기초] 동적 메모리 할당과 관련 함수(malloc, calloc, realloc, free) (0) | 2025.04.14 |
[CS기초] 보이어-무어(Boyer-Moore) 문자열 탐색 알고리즘 (0) | 2025.04.14 |
[CS기초] KMP(Knuth-Morris-Pratt) 알고리즘 (0) | 2025.04.14 |
[CS기초] 가상화(Virtualization) (0) | 2025.04.13 |