1. 소개
GCC란?
GCC(GNU Compiler Collection)는 C와 C++를 포함한 여러 프로그래밍 언어를 컴파일할 수 있는 오픈 소스 컴파일러입니다. 많은 리눅스 배포판에서 표준 컴파일러로 널리 사용됩니다.
GCC의 주요 특징:
- C, C++, Fortran, Java 등 여러 언어를 지원합니다.
- 오픈 소스로 누구나 자유롭게 사용할 수 있습니다.
- 빠르고 높은 신뢰도의 컴파일을 제공합니다.
Ubuntu에서 GCC를 사용하는 이유
- 표준 패키지로 제공 GCC는 Ubuntu 공식 저장소에 포함되어 있어 설치가 쉽습니다.
- 풍부한 문서와 커뮤니티 지원 전 세계적인 사용자 기반 덕분에 문제 해결 및 커스터마이징 자료가 풍부합니다.
- 무료 사용 비용 없이 강력한 개발 환경을 구축할 수 있습니다.
- 쉬운 커스터마이징 여러 GCC 버전을 관리할 수 있어 프로젝트마다 최적의 환경을 구성할 수 있습니다.
요약
이 문서에서는 GCC의 기본 개념과 Ubuntu에서 사용할 때의 장점을 소개합니다. GCC는 비용 없이 사용할 수 있는 강력한 다중 언어 컴파일러이며, Ubuntu에 설치하는 과정은 특히 간단합니다.

2. 준비
시스템 업데이트 및 의존성 확인
먼저 Ubuntu의 패키지 정보를 최신 버전으로 업데이트합니다. 이는 설치 중 오류를 방지하는 데 도움이 됩니다.
1. 시스템 업데이트
sudo apt update
sudo apt upgrade
sudo apt update: 패키지 목록을 업데이트합니다.sudo apt upgrade: 설치된 패키지를 최신 버전으로 업그레이드합니다.
주의사항:
- 업데이트 과정은 몇 분 정도 소요될 수 있습니다.
- 업데이트 후 재부팅을 요구하면 시스템을 재시작하십시오.
개발 도구 확인
GCC를 설치하려면 기본 개발 도구와 패키지가 필요합니다. 다음 명령을 실행하여 설치하십시오:
sudo apt install build-essential
이 명령은 GCC와 필수 개발 도구를 설치합니다.
설치되는 패키지 예시:
- gcc (C 컴파일러)
- g++ (C++ 컴파일러)
- make (빌드 도구)
설치 상태 확인
다음 명령을 사용하여 설치를 확인하고 버전을 확인하십시오:
gcc --version
예시 출력:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
이와 같은 결과가 나타나면 GCC가 정상적으로 설치된 것입니다.
준비 요약
이제 GCC 설치에 필요한 준비를 모두 마쳤습니다.
- 시스템을 업데이트하고 업그레이드했습니다.
- 환경 설정에 필요한 패키지를 설치했습니다.
- GCC가 설치되었는지 확인하고 버전을 확인했습니다.
3. GCC 설치
기본 설치 절차
Ubuntu에서는 공식 저장소에서 GCC를 쉽게 설치할 수 있습니다. 아래 단계에 따라 진행하십시오:
- build-essential 패키지 설치
sudo apt install build-essential
이 명령은 GCC, G++ 및 기타 필수 개발 도구를 설치합니다.
- 설치 진행 확인 “Continue? (Y/n)” 프롬프트가 나타나면 “Y”를 입력하고 Enter 키를 누르십시오.
설치 확인
설치가 완료되면 GCC 버전을 확인하십시오:
gcc --version
예시 출력:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
버전 정보가 표시되면 GCC가 성공적으로 설치된 것입니다.
4. GCC 기본 사용법
간단한 프로그램 만들기 및 컴파일
- 샘플 프로그램 만들기
간단한 “Hello, World!” 프로그램을 만들어 보겠습니다.
nano hello.c
편집기가 열리면 다음 코드를 입력하십시오:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
코드를 입력한 후 Ctrl + X를 눌러 저장하고, Y를 눌러 확인합니다.
프로그램 컴파일
다음으로 GCC를 사용해 프로그램을 컴파일합니다.
gcc hello.c -o hello
명령어 설명:
gcc: 컴파일러 명령.hello.c: 컴파일할 소스 파일.-o hello: 출력 실행 파일 이름을 지정합니다.
컴파일된 프로그램 실행
다음 명령으로 컴파일된 프로그램을 실행합니다:
./hello
예시 출력:
Hello, World!
이 출력이 보이면 프로그램이 정상적으로 컴파일되고 실행된 것입니다.
오류 처리
- 코드 실수로 인한 오류
예시 오류 메시지:
hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
return 0;
해결 방법:
오류 메시지는 문제가 발생한 줄 번호를 보여줍니다. 코드를 검토하고 수정하세요.
- 컴파일러를 찾을 수 없음
예시 오류 메시지:
gcc: command not found
해결 방법:
GCC가 설치되지 않았을 수 있습니다. 다음 명령으로 재설치하세요:
sudo apt install build-essential
- 런타임 오류
예시 오류 메시지:
bash: ./hello: Permission denied
해결 방법:
파일에 실행 권한을 부여하세요:
chmod +x hello
./hello
최적화 옵션
GCC는 코드 성능을 향상시키기 위해 최적화할 수 있게 해줍니다.
예시: 최적화 레벨 지정
gcc -O2 hello.c -o hello
-O1: 기본 최적화.-O2: 보다 고급 최적화.-O3: 성능을 위한 최대 최적화.
이러한 옵션은 실행 속도를 향상시키고 코드 크기를 줄이는 데 도움이 됩니다.
요약
이 섹션에서는 GCC를 사용하여 기본 프로그램을 작성, 컴파일 및 실행하는 방법을 설명했습니다.
핵심 요점:
- 샘플 프로그램을 만들고 컴파일하는 방법을 배웠습니다.
- 일반적인 오류를 처리하는 방법을 검토했습니다.
- 프로그램 성능을 향상시키기 위한 최적화 옵션 사용법을 배웠습니다.
5. 여러 버전 관리
여러 버전 설치
Ubuntu에서는 GCC의 다양한 버전을 동시에 설치할 수 있습니다. 아래 단계에 따라 설정하세요.
- 사용 가능한 버전 확인
sudo apt search gcc-
이 명령은 저장소에 있는 사용 가능한 GCC 버전을 나열합니다.
예시 출력:
gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
- 필요한 버전 설치
예를 들어, GCC 9와 GCC 10을 설치합니다:
sudo apt install gcc-9 gcc-10
설치가 완료되면 버전 전환을 구성합니다.
버전 간 전환
update-alternatives 명령을 사용하면 GCC 버전을 쉽게 전환할 수 있습니다.
- 설치된 GCC 버전 등록
아래 명령을 실행하여 update-alternatives에 GCC 버전을 등록합니다:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
이 설정은 GCC 10에 더 높은 우선순위를 부여합니다.
- 사용할 버전 선택
sudo update-alternatives --config gcc
예시 출력:
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-10 100 auto mode
1 /usr/bin/gcc-9 90 manual mode
2 /usr/bin/gcc-10 100 manual mode
Press <enter> to keep the current choice[*], or type selection number:
원하는 버전 번호를 입력하세요.
프로젝트별 특정 버전 사용
특정 프로젝트에 다른 GCC 버전을 사용하려면 심볼릭 링크를 적절히 조정하세요.
- 심볼릭 링크 생성
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
- 버전 확인
gcc --version
선택한 버전이 활성화되어 있는지 확인합니다.
요약
이 섹션에서는 여러 GCC 버전을 설치하고 update-alternatives를 사용해 전환하는 방법을 다루었습니다.
핵심 요점:
- 필요한 버전을 설치하고
update-alternatives로 관리합니다. - 프로젝트별로 특정 버전을 사용하도록 심볼릭 링크를 설정합니다.

6. 문제 해결
설치 오류 및 해결 방법
오류 예시 1: 패키지를 찾을 수 없음
E: Unable to locate package build-essential
원인:
패키지 목록이 오래되었거나 저장소 설정이 올바르지 않습니다.
해결책:
다음 명령을 사용하여 저장소 정보를 업데이트합니다:
sudo apt update
sudo apt upgrade
sudo apt install build-essential
추가 해결책:
sudo add-apt-repository universe
sudo apt update
이렇게 하면 패키지를 찾을 수 있을 수도 있습니다.
오류 예시 2: 권한 오류
Permission denied
원인:
명령이 관리자 권한으로 실행되지 않았습니다.
해결책:
sudo 로 설치 명령을 실행합니다:
sudo apt install build-essential
컴파일 시 오류 및 해결 방법
오류 예시 1: 컴파일러를 찾을 수 없음
gcc: command not found
원인:
GCC가 설치되지 않았거나 PATH가 올바르게 설정되지 않았습니다.
해결책:
GCC가 설치되어 있는지 확인합니다:
sudo apt install gcc
이미 설치되어 있다면 심볼릭 링크를 복구합니다:
sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc
오류 예시 2: 라이브러리 링크 오류
undefined reference to 'main'
원인:
main 함수가 없거나 링크 오류가 있습니다.
해결책:
코드에 main 함수가 포함되어 있는지 확인하고, 올바른 옵션으로 다시 컴파일합니다:
gcc -o output main.c -lm
런타임 오류 및 해결 방법
오류 예시 1: 실행 권한 없음
bash: ./program: Permission denied
원인:
실행 파일에 실행 권한이 없습니다.
해결책:
실행 권한을 추가합니다:
chmod +x program
./program
오류 예시 2: 라이브러리 누락
error while loading shared libraries: libXXX.so: cannot open shared object file: No such file or directory
원인:
필요한 공유 라이브러리가 설치되지 않았습니다.
해결책:
누락된 라이브러리를 확인하고 설치합니다:
sudo apt install libXXX-dev
버전 관리 오류 및 해결 방법
오류 예시: 버전 전환이 적용되지 않음
gcc --version
출력이 전환된 버전을 반영하지 않으면 update-alternatives 설정을 다시 확인하십시오.
해결책:
- 사용 가능한 구성을 확인합니다.
sudo update-alternatives --config gcc
- 올바른 버전을 선택합니다.
- 심볼릭 링크를 업데이트합니다.
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
요약
이 섹션에서는 GCC 설치 및 사용 중 발생하는 일반적인 오류와 구체적인 해결 방법을 설명했습니다.
핵심 요점:
- 설치 오류는 저장소를 업데이트하고 설정을 수정하면 해결할 수 있습니다.
- 컴파일 시 문제는 코드나 링크 옵션을 확인해야 합니다.
- 런타임 오류는 권한 부족이나 라이브러리 누락으로 발생합니다.
- 버전 관리 문제는 심볼릭 링크와
update-alternatives로 조정할 수 있습니다.
7. FAQ 섹션
최신 GCC 버전을 설치하려면 어떻게 해야 하나요?
질문:
GCC 최신 버전을 설치하고 싶지만 Ubuntu 저장소에서는 오래된 버전만 제공합니다. 어떻게 해야 할까요?
답변:
PPA 저장소를 추가하고 최신 버전을 설치합니다.
- PPA를 추가합니다:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
- 패키지를 업데이트합니다:
sudo apt update
- 최신 GCC를 설치합니다:
sudo apt install gcc-12
- 버전을 확인합니다:
gcc --version
GCC를 제거하려면 어떻게 하나요?
답변:
다음 명령을 실행합니다:
sudo apt remove gcc
sudo apt autoremove
관련 개발 도구를 제거하려면:
sudo apt remove build-essential
update-alternatives에 오래된 버전만 표시되면 어떻게 해야 하나요?
답변:
필요한 버전을 수동으로 추가합니다:
sudo apt install gcc-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
sudo update-alternatives --config gcc
종속성 오류를 해결하려면 어떻게 해야 하나요?
답변:
시스템을 업데이트해 보세요:
sudo apt update
sudo apt upgrade
해결되지 않을 경우:
sudo apt --fix-broken install
특정 프로젝트에 다른 GCC 버전을 사용하려면 어떻게 해야 하나요?
답변:
- 로컬 심볼릭 링크를 생성합니다:
ln -s /usr/bin/gcc-9 ./gcc
- 컴파일 시 사용합니다:
./gcc -o program program.c
“command not found” 오류가 발생하면 어떻게 해야 하나요?
답변:
GCC가 설치되어 있는지 확인합니다:
dpkg -l | grep gcc
설치되지 않은 경우, 재설치합니다:
sudo apt install gcc
심볼릭 링크가 깨진 경우, 수정합니다:
sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc
요약
이 섹션에서는 GCC 사용과 관련된 일반적인 질문과 실용적인 해결책을 다루었습니다.
핵심 요점:
- 최신 버전은 PPA 저장소를 통해 설치할 수 있습니다.
- 제거 및 버전 관리는
update-alternatives로 처리됩니다. - 일반적인 오류를 해결하기 위한 실용적인 예제가 제공되었습니다.

8. 결론 및 다음 단계
핵심 포인트 검토
- GCC 개요 및 목적
- GCC는 C와 C++와 같은 여러 프로그래밍 언어를 지원합니다.
- Ubuntu는 공식 저장소를 통해 GCC에 쉽게 접근할 수 있게 합니다.
- 설치 및 준비 단계
- 시스템을 업데이트하고
build-essential패키지를 설치했습니다. - 버전 확인 및 종속성 문제 해결을 검토했습니다.
- 기본 사용법
- 샘플 코드를 생성, 컴파일, 실행하는 방법을 배웠습니다.
- 최적화 및 오류 처리 기법을 탐구했습니다.
- 다중 버전 관리
- 프로젝트에 따라 GCC 버전을 전환하기 위해
update-alternatives를 사용했습니다.
- 문제 해결 및 FAQ
- 일반적인 오류와 단계별 해결책을 논의했습니다.
추가 자료
- 공식 Ubuntu 문서
- Ubuntu 공식 사이트는 패키지 관리 및 개발 도구에 대한 자세한 가이드를 제공합니다.
- 공식 GCC 문서
- GCC 매뉴얼은 고급 사용법과 설정 옵션을 제공합니다.
- Linux 문제 해결 자료
- Linux Console에는 다양한 Linux 문제 해결 정보가 포함되어 있습니다.
- 학습 플랫폼 및 포럼
- Qiita와 Stack Overflow는 유용한 예제와 커뮤니티 지원을 제공합니다.
다음 단계
- 실제 개발에 GCC 적용
- 프로젝트에서 더 고급 프로그램을 빌드하기 위해 GCC를 사용합니다.
- 라이브러리를 사용해 기능 확장
- 프로젝트 기능을 향상시키기 위해 추가 라이브러리를 포함합니다.
- 새 도구와 언어 학습
- 관련 개발 도구와 언어를 숙달하여 스킬을 확장합니다.
- 오픈소스 커뮤니티에 참여
- 포럼이나 오픈소스 프로젝트에 참여해 실무 경험을 쌓고 지식을 공유합니다.
최종 생각
이 문서는 Ubuntu에 GCC를 설치하고 사용하는 모든 단계를 안내했습니다. 여기서 소개한 방법과 문제 해결 방식을 따르면 누구나 신뢰할 수 있는 개발 환경을 구축할 수 있습니다.
마지막 메모:
GCC를 사용해 소프트웨어 아이디어를 실현하세요. 문제가 발생하면 FAQ나 참고 자료를 다시 확인하여 효율적으로 해결하십시오.
다음 글에서는 C와 C++의 핵심 문법 및 고급 개발 기법을 다룰 예정입니다. 업데이트를 기대해 주세요!