目次
1. 소개
GCC란?
GCC(GNU Compiler Collection)는 C와 C++을 비롯한 여러 프로그래밍 언어를 컴파일할 수 있는 오픈소스 컴파일러입니다. Linux 배포판의 표준 컴파일러로 널리 사용됩니다. GCC의 주요 특징:- C 언어, C++, Fortran, Java 등 여러 언어를 지원합니다.
- 오픈소스이며, 누구나 자유롭게 이용할 수 있습니다.
- 고속이며 신뢰성 높은 컴파일이 가능합니다.
Ubuntu에서 GCC를 사용하는 이유
- 표준 패키지로 제공된다 Ubuntu 저장소에는 GCC가 기본으로 포함되어 있어 쉽게 설치할 수 있습니다.
- 많은 지원 정보와 문서가 있다 전 세계에 많은 사용자가 있기 때문에, 트러블슈팅 및 커스터마이징에 관한 정보가 풍부합니다.
- 무료로 이용할 수 있다 비용을 절감하면서 강력한 개발 환경을 구축할 수 있습니다.
- 커스터마이징이 용이 여러 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++, 및 개발 도구 전체를 설치합니다.- 설치 진행 상황 확인 설치 중에 “계속 진행하시겠습니까? (Y/n)” 라는 메시지가 표시되면, “Y”를 입력하고 Enter를 누릅니다。
설치 후 확인 방법
설치가 완료되면, GCC 버전을 확인하여 정상적으로 설치되었는지 확인합시다.gcc --version
출력 예:gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
이와 같이 버전 정보가 표시되면, GCC는 정상적으로 설치된 것입니다.추가 도구 및 라이브러리 설치
GCC만으로는 부족할 수 있으므로, 아래 추가 패키지를 설치하는 것을 권장합니다.- G++ (C++ 컴파일러) 설치
sudo apt install g++
- 디버그 도구 설치
sudo apt install gdb
- 매뉴얼 페이지 설치
sudo apt install manpages-dev
이를 통해 GCC에 관한 도움말 및 매뉴얼 페이지를 바로 참조할 수 있게 됩니다.설치에 실패했을 경우 대처 방법
- 패키지를 찾을 수 없는 경우
E: Unable to locate package build-essential
해결책: 저장소 정보를 업데이트합니다.sudo apt update
sudo apt upgrade
- 권한 오류가 발생한 경우
Permission denied
해결책: 명령어 앞에 sudo
를 붙여 관리자 권한으로 실행하십시오.설치 절차 요약
여기서는 GCC 설치 절차와 확인 방법, 추가 패키지 설치에 대해 설명했습니다. 핵심 요점 정리:sudo apt install build-essential
명령으로 쉽게 설치 가능.- 버전을 확인하여 설치 상태를 점검.
- 필요에 따라 G++ 및 gdb 등 추가 도구도 도입.

4. GCC의 기본적인 사용법
간단한 프로그램 만들기와 컴파일
- 샘플 프로그램 만들기
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
출력 예시:Hello, World!
이 결과가 표시되면, 프로그램이 정상적으로 컴파일되고 실행된 것을 의미합니다.오류 발생 시 대처 방법
- 코드 실수에 의한 오류
hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
return 0;
해결책: 오류 메시지에는 문제 위치(예: 3행)가 표시됩니다. 코드를 확인하고, 작성 실수를 수정하십시오.- 컴파일 오류
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
- 필요한 버전 설치
sudo apt install gcc-9 gcc-10
설치가 완료되면, 다음으로 전환 방법을 설정합니다.버전 전환 방법
Ubuntu에서는update-alternatives
명령을 사용해 쉽게 GCC 버전을 전환할 수 있습니다.- 버전 관리 설정
update-alternatives
에 등록합니다.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을 우선순위 100으로 등록합니다.- 사용 버전 선택
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:
원하는 번호를 입력하고 Enter 키를 누릅니다.프로젝트별 특정 버전 사용 방법
프로젝트마다 특정 버전을 사용하려면 심볼릭 링크를 전환하면 됩니다.- 링크 생성
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
이 명령으로 GCC 9를 기본값으로 설정할 수 있습니다.- 버전 확인
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를 설치하고 싶지만, 기본 저장소에는 오래된 버전만 있습니다. 어떻게 하면 최신 버전을 설치할 수 있나요? 답변: 최신 버전의 GCC를 설치하려면 PPA 저장소를 추가합니다.- PPA 저장소 추가:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
- 패키지 목록 업데이트:
sudo apt update
- 최신 버전 설치:
sudo apt install gcc-12
- 버전 확인:
gcc --version
GCC를 제거하는 방법은?
질문: GCC를 제거하고 싶을 때는 어떻게 하면 좋나요? 답변: 다음 명령으로 GCC를 제거할 수 있습니다.sudo apt remove gcc
sudo apt autoremove
관련 도구도 함께 삭제하려면 다음 명령을 추가합니다.sudo apt remove build-essential
GCC가 오래된 버전만 선택할 수 있을 때의 해결 방법은?
질문:update-alternatives --config gcc
를 사용해도 오래된 버전만 선택됩니다. 최신 버전을 추가하려면 어떻게 해야 하나요? 답변: 최신 버전을 수동으로 추가합니다.- 필요한 버전을 설치합니다.
sudo apt install gcc-12
- 수동으로 대체 설정에 추가합니다.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
- 버전을 선택합니다.
sudo update-alternatives --config gcc
의존성 오류가 발생했을 때의 해결 방법은?
질문: GCC 설치 중에 의존성 오류가 발생했습니다. 어떻게 해결할 수 있나요? 답변: 의존성 오류는 시스템이 최신이 아니어서 발생했을 가능성이 있습니다. 다음 명령을 실행하십시오.sudo apt update
sudo apt upgrade
그래도 해결되지 않으면, 의존성을 자동으로 복구합니다.sudo apt --fix-broken install
특정 프로젝트에서 GCC의 특정 버전을 사용하려면?
질문: 프로젝트마다 다른 GCC 버전을 사용하고 싶을 때, 어떻게 설정할 수 있나요? 답변: 프로젝트 디렉터리 내에서 심볼릭 링크를 설정합니다.- 프로젝트 전용 GCC 링크를 생성합니다.
ln -s /usr/bin/gcc-9 ./gcc
- 로컬 컴파일 시 사용합니다.
./gcc -o program program.c
에러 메시지 “command not found”가 표시될 때의 대처 방법은?
질문: GCC를 설치했는데도gcc: command not found
가 표시됩니다. 어떻게 해야 하나요? 답변: 우선 설치 여부를 확인합니다.dpkg -l | grep gcc
GCC가 설치되지 않은 경우 재설치합니다.sudo apt install gcc
그래도 해결되지 않으면, 심볼릭 링크를 확인합니다.ls -l /usr/bin/gcc
링크가 깨진 경우 수정합니다.sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc
요약
이 섹션에서는 GCC에 관한 자주 묻는 질문과 구체적인 해결책을 소개했습니다. 핵심 정리:- 최신 버전은 PPA 저장소로 설치 가능.
- 제거 및 버전 관리는
update-alternatives
로 쉽게 설정. - 문제 발생 시 구체적인 명령 예시도 소개.

8. 요약 및 다음 단계
이 글의심 요점 정리
- GCC 개요와 역할
- GCC는 C 언어와 C++을 비롯 언어를 지원하는 강력한 컴파일러입니다.
- Ubuntu에서는 공식 저장소에서 쉽게 수 있어 개발 환경 구축에 최적입니다.
- 설치 및 준비 절차
build-essential
패키지를 설치합니다.- 버전 확인 및 의존성 문제 해결을 통해 환경을했습니다.
- 기본 사용법
- 샘플 프로그램 작성, 컴파일, 실행 흐름을 설명했습니다.
- 오류 발생 시 대처 방법 및 최적화 옵션도 소개했습니다.
- 다중 버전 관리 및 전환
update-alternatives
명령을 활용하여 프로젝트별로 적절한 GCC 버전을 전환하는 방법을 설명했습니다.
- 문제 해결 및 FAQ
- 설치 및 사용 시 발생할 수 있는 오류와 그 대책을 구체적인 예와 함께 설명했습니다.
추가 리소스 소개
추가 학습 및 응용에 도움이 되는 리소스를 아래에 소개합니다.- Ubuntu 공식 문서
- Ubuntu 공식 사이트에서는 패키지 관리와 개발 도구에 관한 상세 가이드를 제공합니다.
- GNU 공식 GCC 문서
- GCC 공식 매뉴얼에서는 GCC의 상세 설정 및 고급 사용 방법을 배울 수 있습니다.
- Linux 콘솔 가이드
- Linux Console에서는 Linux 전반에 관한 문제 해결 정보가 제공됩니다.
- 학습 사이트와 포럼
- Qiita와 Stack Overflow에서 코드 예시와 질문에 대한 답변을 참고할 수 있습니다.
다음 단계
- 프로그램 개발에의 적용
- 실제 프로젝트에 GCC를 활용하여 보다 고급 프로그램 개발을 진행해봅시다.
- 라이브러리 활용 및 확장
- 필요에 따라 추가 라이브러리를 설치하고, 프로젝트 기능을 확장해 나갑시다.
- 다른 프로그래밍 언어와 빌드 도구를 습득함으로써, 더욱 스킬을 향상시키는 것을 목표로 합니다.
- 커뮤니티 참여
- 포럼이나 오픈소스 프로젝트에 참여하여 지식을 공유하면서 실전으로 스킬을 연마합시다.