Ubuntu에서 GCC를 간편하게 설치! 초보자부터 실전까지 완벽 가이드【오류 대처 포함】

1. 소개

GCC란?

GCC(GNU Compiler Collection)는 C와 C++을 비롯한 여러 프로그래밍 언어를 컴파일할 수 있는 오픈소스 컴파일러입니다. Linux 배포판의 표준 컴파일러로 널리 사용됩니다. GCC의 주요 특징:
  • C 언어, C++, Fortran, Java 등 여러 언어를 지원합니다.
  • 오픈소스이며, 누구나 자유롭게 이용할 수 있습니다.
  • 고속이며 신뢰성 높은 컴파일이 가능합니다.

Ubuntu에서 GCC를 사용하는 이유

  1. 표준 패키지로 제공된다 Ubuntu 저장소에는 GCC가 기본으로 포함되어 있어 쉽게 설치할 수 있습니다.
  2. 많은 지원 정보와 문서가 있다 전 세계에 많은 사용자가 있기 때문에, 트러블슈팅 및 커스터마이징에 관한 정보가 풍부합니다.
  3. 무료로 이용할 수 있다 비용을 절감하면서 강력한 개발 환경을 구축할 수 있습니다.
  4. 커스터마이징이 용이 여러 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를 공식 저장소에서 쉽게 설치할 수 있습니다. 아래 절차에 따라 설치를 진행합니다.
  1. build-essential 패키지 설치
sudo apt install build-essential
이 명령은 GCC, G++, 및 개발 도구 전체를 설치합니다.
  1. 설치 진행 상황 확인 설치 중에 “계속 진행하시겠습니까? (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만으로는 부족할 수 있으므로, 아래 추가 패키지를 설치하는 것을 권장합니다.
  1. G++ (C++ 컴파일러) 설치
sudo apt install g++
  1. 디버그 도구 설치
sudo apt install gdb
  1. 매뉴얼 페이지 설치
sudo apt install manpages-dev
이를 통해 GCC에 관한 도움말 및 매뉴얼 페이지를 바로 참조할 수 있게 됩니다.

설치에 실패했을 경우 대처 방법

  1. 패키지를 찾을 수 없는 경우
E: Unable to locate package build-essential
해결책: 저장소 정보를 업데이트합니다.
sudo apt update
sudo apt upgrade
  1. 권한 오류가 발생한 경우
Permission denied
해결책: 명령어 앞에 sudo를 붙여 관리자 권한으로 실행하십시오.

설치 절차 요약

여기서는 GCC 설치 절차와 확인 방법, 추가 패키지 설치에 대해 설명했습니다. 핵심 요점 정리:
  • sudo apt install build-essential 명령으로 쉽게 설치 가능.
  • 버전을 확인하여 설치 상태를 점검.
  • 필요에 따라 G++ 및 gdb 등 추가 도구도 도입.

4. GCC의 기본적인 사용법

간단한 프로그램 만들기와 컴파일

  1. 샘플 프로그램 만들기
먼저, 간단한 “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
출력 예시:
Hello, World!
이 결과가 표시되면, 프로그램이 정상적으로 컴파일되고 실행된 것을 의미합니다.

오류 발생 시 대처 방법

  1. 코드 실수에 의한 오류
오류 메시지 예시:
hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
    return 0;
해결책: 오류 메시지에는 문제 위치(예: 3행)가 표시됩니다. 코드를 확인하고, 작성 실수를 수정하십시오.
  1. 컴파일 오류
오류 메시지 예시:
gcc: command not found
해결책: GCC가 설치되지 않았을 가능성이 있습니다. 아래 명령어로 재설치합니다.
sudo apt install build-essential
  1. 실행 시 오류
오류 메시지 예시:
bash: ./hello: Permission denied
해결책: 파일에 실행 권한이 없을 경우, 아래 명령어로 권한을 추가합니다.
chmod +x hello
./hello

프로그램 최적화 옵션

GCC에서는 최적화 옵션을 사용해 프로그램 성능을 향상시킬 수 있습니다. 예: 최적화 레벨 지정
gcc -O2 hello.c -o hello
  • -O1: 기본적인 최적화.
  • -O2: 보다 고급 최적화.
  • -O3: 최대한의 최적화(처리 속도 우선).
이를 통해 실행 속도와 코드 크기를 효율화할 수 있습니다.

정리

이 섹션에서는 GCC를 사용한 기본적인 프로그램 만들기부터 컴파일, 실행까지의 절차를 설명했습니다. 핵심 요점 정리:
  • 샘플 코드 만들기와 컴파일 방법을 배웠다.
  • 오류 발생 시 대처 방법을 확인했다.
  • 최적화 옵션을 활용해 프로그램 성능을 향상시키는 방법을 소개했다.

5. 여러 버전 관리

여러 버전 설치

Ubuntu에서는 서로 다른 버전의 GCC를 동시에 설치할 수 있습니다. 아래 단계에 따라 여러 버전을 설치해 보세요.
  1. 가능한 버전 확인
sudo apt search gcc-
이 명령으로 리포지토리 내 GCC 버전 목록을 확인할 수 있습니다. 예: 출력 예시
gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
  1. 필요한 버전 설치
예시로 GCC 9와 GCC 10을 설치합니다.
sudo apt install gcc-9 gcc-10
설치가 완료되면, 다음으로 전환 방법을 설정합니다.

버전 전환 방법

Ubuntu에서는 update-alternatives 명령을 사용해 쉽게 GCC 버전을 전환할 수 있습니다.
  1. 버전 관리 설정
먼저, 설치된 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으로 등록합니다.
  1. 사용 버전 선택
다음 명령으로 사용할 버전을 수동으로 선택할 수 있습니다.
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 키를 누릅니다.

프로젝트별 특정 버전 사용 방법

프로젝트마다 특정 버전을 사용하려면 심볼릭 링크를 전환하면 됩니다.
  1. 링크 생성
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
이 명령으로 GCC 9를 기본값으로 설정할 수 있습니다.
  1. 버전 확인
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 설정을 다시 확인합니다. 해결책:
  1. 설정 목록을 확인합니다.
sudo update-alternatives --config gcc
  1. 올바른 번호를 선택합니다.
  2. 심볼릭 링크를 업데이트합니다.
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc

요약

이 섹션에서는 GCC 설치 및 사용 시 발생하기 쉬운 문제와 그 해결책에 대해 설명했습니다. 핵심 요점 정리:
  • 설치 오류는 패키지 업데이트와 저장소 설정 수정으로 대응합니다.
  • 컴파일 오류는 코드와 링크 옵션을 확인합니다.
  • 실행 시 오류는 권한과 라이브러리 부족을 확인합니다.
  • 버전 관리 시에는 심볼릭 링크와 update-alternatives로 조정할 수 있습니다.

7. FAQ 섹션

GCC 최신 버전을 설치하려면 어떻게 해야 하나요?

질문: 최신 버전의 GCC를 설치하고 싶지만, 기본 저장소에는 오래된 버전만 있습니다. 어떻게 하면 최신 버전을 설치할 수 있나요? 답변: 최신 버전의 GCC를 설치하려면 PPA 저장소를 추가합니다.
  1. PPA 저장소 추가:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
  1. 패키지 목록 업데이트:
sudo apt update
  1. 최신 버전 설치:
sudo apt install gcc-12
  1. 버전 확인:
gcc --version

GCC를 제거하는 방법은?

질문: GCC를 제거하고 싶을 때는 어떻게 하면 좋나요? 답변: 다음 명령으로 GCC를 제거할 수 있습니다.
sudo apt remove gcc
sudo apt autoremove
관련 도구도 함께 삭제하려면 다음 명령을 추가합니다.
sudo apt remove build-essential

GCC가 오래된 버전만 선택할 수 있을 때의 해결 방법은?

질문: update-alternatives --config gcc를 사용해도 오래된 버전만 선택됩니다. 최신 버전을 추가하려면 어떻게 해야 하나요? 답변: 최신 버전을 수동으로 추가합니다.
  1. 필요한 버전을 설치합니다.
sudo apt install gcc-12
  1. 수동으로 대체 설정에 추가합니다.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
  1. 버전을 선택합니다.
sudo update-alternatives --config gcc

의존성 오류가 발생했을 때의 해결 방법은?

질문: GCC 설치 중에 의존성 오류가 발생했습니다. 어떻게 해결할 수 있나요? 답변: 의존성 오류는 시스템이 최신이 아니어서 발생했을 가능성이 있습니다. 다음 명령을 실행하십시오.
sudo apt update
sudo apt upgrade
그래도 해결되지 않으면, 의존성을 자동으로 복구합니다.
sudo apt --fix-broken install

특정 프로젝트에서 GCC의 특정 버전을 사용하려면?

질문: 프로젝트마다 다른 GCC 버전을 사용하고 싶을 때, 어떻게 설정할 수 있나요? 답변: 프로젝트 디렉터리 내에서 심볼릭 링크를 설정합니다.
  1. 프로젝트 전용 GCC 링크를 생성합니다.
ln -s /usr/bin/gcc-9 ./gcc
  1. 로컬 컴파일 시 사용합니다.
./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. 요약 및 다음 단계

이 글의심 요점 정리

  1. GCC 개요와 역할
  • GCC는 C 언어와 C++을 비롯 언어를 지원하는 강력한 컴파일러입니다.
  • Ubuntu에서는 공식 저장소에서 쉽게 수 있어 개발 환경 구축에 최적입니다.
  1. 설치 및 준비 절차
<ul스템을 최신 상태로 업데이트하고, build-essential 패키지를 설치합니다.
  • 버전 확인 및 의존성 문제 해결을 통해 환경을했습니다.
 
  1. 기본 사용법
  • 샘플 프로그램 작성, 컴파일, 실행 흐름을 설명했습니다.
  • 오류 발생 시 대처 방법 및 최적화 옵션도 소개했습니다.
  1. 다중 버전 관리 및 전환
  • update-alternatives 명령을 활용하여 프로젝트별로 적절한 GCC 버전을 전환하는 방법을 설명했습니다.
  1. 문제 해결 및 FAQ
  • 설치 및 사용 시 발생할 수 있는 오류와 그 대책을 구체적인 예와 함께 설명했습니다.

추가 리소스 소개

추가 학습 및 응용에 도움이 되는 리소스를 아래에 소개합니다.
  1. Ubuntu 공식 문서
  1. GNU 공식 GCC 문서
  • GCC 공식 매뉴얼에서는 GCC의 상세 설정 및 고급 사용 방법을 배울 수 있습니다.
  1. Linux 콘솔 가이드
  • Linux Console에서는 Linux 전반에 관한 문제 해결 정보가 제공됩니다.
  1. 학습 사이트와 포럼
  • QiitaStack Overflow에서 코드 예시와 질문에 대한 답변을 참고할 수 있습니다.

다음 단계

  1. 프로그램 개발에의 적용
  • 실제 프로젝트에 GCC를 활용하여 보다 고급 프로그램 개발을 진행해봅시다.
  1. 라이브러리 활용 및 확장
    • 필요에 따라 추가 라이브러리를 설치하고, 프로젝트 기능을 확장해 나갑시다.
새로운 언어와 도구 습득
  • 다른 프로그래밍 언어와 빌드 도구를 습득함으로써, 더욱 스킬을 향상시키는 것을 목표로 합니다.
  1. 커뮤니티 참여
  • 포럼이나 오픈소스 프로젝트에 참여하여 지식을 공유하면서 실전으로 스킬을 연마합시다.

요약 마무리

이 글에서는 Ubuntu에서 GCC 설치부터 활용까지를 단계별로 설명했습니다. 초보자도 혼란 없이 환경 구축을 할 수 있도록 절차와 문제 해결을 모두 다루었습니다. 마지막 한마디: 이 글을 참고하면서, 자신의 프로젝트에 GCC를 활용하고 프로그램 개발을 즐기세요. 추가로 궁으면 FAQ 섹션이나 추가 리소스를 활용해 해결해 나가세요. 다음 글에서는 C 언어와 C++의 기본 문법 및 고급 개발 기법을 다룰 예정입니다. 앞으로의 업데이트도 꼭 확인해 주세요!
年収訴求