[CS기초] GCC(GNU Compiler Collection)

2025. 4. 14. 21:02·크래프톤 정글/CS기초(키워드, 개념정리)

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
'크래프톤 정글/CS기초(키워드, 개념정리)' 카테고리의 다른 글
  • [CS기초] 5주차 개념 정리
  • [CS기초] 동적 메모리 할당과 관련 함수(malloc, calloc, realloc, free)
  • [CS기초] 보이어-무어(Boyer-Moore) 문자열 탐색 알고리즘
  • [CS기초] KMP(Knuth-Morris-Pratt) 알고리즘
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기 N
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어) N
        • 마이 정글(WIL, 에세이)
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[CS기초] GCC(GNU Compiler Collection)
상단으로

티스토리툴바