Journey to Security/리눅스

[Linux] C/C++ 개발 환경 세팅: GCC, G++ 설치 및 build-essential

Cordilog 2026. 2. 10. 15:06

리눅스 환경에서 C 또는 C++ 프로그램을 개발하기 위해서는 컴파일러 설치가 필수적이다.

우분투에서 C 개발 환경을 구축하는 방법과 주요 도구들의 차이점을 알아보자.

1. GCC vs G++

GCC와 G++ 둘 다 GNU 컴파일러 모음(GCC)에 포함되어 있지만, 처리 방식에 차이가 있다.

구분 GCC (gcc) G++ (g++)
주요 대상 C 언어 컴파일러 C++ 언어 컴파일러
확장자 인식 .c는 C로, .cpp는 C++로 인식 모든 파일을 C++로 간주
라이브러리 링크 C++ 표준 라이브러리를 자동 링크하지 않음 **C++ 표준 라이브러리(STL)**를 자동 링크

 

C 코드를 짤 때는 gcc, C++ 코드를 짤 때는 g++를 사용하는 것이 표준이다.

C++ 파일을 gcc로 컴파일하면 라이브러리 링크 오류가 발생할 수 있으므로 주의해야 한다.

 

2. 리눅스에서 GCC/G++ 설치하기

우분투에서는 개별 컴파일러를 하나씩 설치하기보다, 개발에 필요한 필수 도구를 모아놓은 build-essential 패키지를 설치하는 것이 훨씬 간편하다.

설치 단계

  1. 패키지 목록 업데이트: 최신 정보를 가져온다.
    sudo apt update
    
  2. 필수 도구 모음 설치:
    sudo apt install build-essential
    

     

3. build-essential 패키지 구성 요소

build-essential을 설치하면 단순히 컴파일러만 깔리는 것이 아니라, 소프트웨어를 빌드하는 데 꼭 필요한 다음 도구들이 함께 설치된다.

도구/패키지명 역할 설명
gcc GNU C 컴파일러. C 코드를 실행 파일로 변환한다.
g++ GNU C++ 컴파일러. C++ 코드를 실행 파일로 변환한다.
make Makefile을 읽어 빌드 과정을 자동화하는 도구이다.
libc6-dev C 표준 라이브러리와 헤더 파일(stdio.h 등)을 포함한다.
dpkg-dev 데비안 패키지를 생성하고 관리하는 데 필요한 도구이다.

 

참고: 디버깅 도구인 gdb는 build-essential에 포함되지 않는 경우가 많다. 만약 gdb --version 입력 시 정보가 나오지 않는다면 sudo apt install gdb로 별도 설치해야 한다. (일부 환경에서는 의존성 패키지로 인해 이미 설치되어 있을 수 있다.)

 

 

4. 설치 확인 및 버전 체크

 

설치가 끝났다면 각 도구가 정상적으로 작동하는지 버전을 확인하여 점검한다.

터미널에 아래 명령어를 입력했을 때 버전 정보가 출력되면 성공이다.

$ gcc --version
$ g++ --version
$ make --version

 

만약 특정 실행 파일의 위치가 궁금하다면 which 명령어를 사용해 확인할 수 있다.

  • 예: which gcc -> 결과: /usr/bin/gcc

 

5. 간단한 컴파일 테스트

설치가 잘 되었는지 확인하기 위해 간단한 C 코드를 작성하고 컴파일해 본다.

 

1. 코드 작성 (hello.c)

#include <stdio.h>
int main() {
    printf("Hello World!\n");
    return 0;
}

 

2. 컴파일

gcc hello.c -o hello 또는 gcc -o hello hello.c

** -o 바로 다음에는 내가 만들고 싶은 실행 파일 이름이 오도록 함.

 

3. 실행

./hello

정상적으로 "Hello World!"가 출력된다면 이제 리눅스에서 C/C++ 개발을 시작할 준비가 끝난 것이다.