Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스에서 G++ 컴파일러 설치 및 사용하는 방법 완벽 가이드

리눅스에서 G++ 컴파일러 설치 및 사용하는 방법 완벽 가이드

컴파일 과정은 모든 C++ 코딩 프로젝트에서 빼놓을 수 없는 핵심 단계입니다. 따라서 효율적이면서도 간단하게 사용할 수 있고, 다양한 기능까지 갖춘 컴파일러가 필요합니다. 바로 이 지점에서 g++ 컴파일러가 큰 힘을 발휘합니다. g++은 명령줄에서 바로 실행 가능한 다양한 컴파일 기능을 제공하며, 이 글에서는 이 강력한 도구를 시작하는 방법을 단계별로 안내합니다.

g++이란 무엇인가?

g++은 명령줄(터미널)에서 실행되는 C++ 컴파일러라고 설명하는 것이 가장 정확합니다. 자유소프트웨어재단(Free Software Foundation)에서 배포했으며, GCC(GNU Compiler Collection)의 일부입니다. g++은 고급 프로그래밍 언어(여기서는 C++)로 작성된 코드를 컴퓨터가 이해할 수 있는 저수준 언어로 변환하여 실행 파일로 만들어 줍니다.

설치 방법

대부분의 리눅스 배포판에는 g++이 기본적으로 설치되어 있습니다. 하지만 사용 중인 배포판에 설치되어 있지 않다면, 아래 안내에 따라 주요 리눅스 배포판에 설치하는 방법을 확인해 보세요.

우분투(Ubuntu)데비안(Debian)에서는 apt 패키지 관리자를 사용해 설치합니다:

sudo apt update && sudo apt install g++

페도라(Fedora)CentOS에서는 yum 패키지 관리자를 사용합니다:

sudo yum install g++

또한 pkgs.org에서 패키지 파일을 직접 다운로드할 수도 있습니다. Curl 도구를 활용하는 방법은 다음과 같습니다:

sudo curl https://ftp.de.debian.org/debian/pool/main/g/gcc-defaults/g++_10.2.1-1_amd64.deb -O

다운로드한 패키지는 dpkg 유틸리티로 설치할 수 있습니다:

sudo dpkg -i g++.deb

g++이 제대로 설치되었는지 확인하려면 --version 플래그를 사용하세요:

g++ --version
리눅스에서 G++ 컴파일러 설치 및 사용하는 방법 완벽 가이드

기본 사용법

설치가 완료되었다면 이제 본격적으로 g++을 사용해 코드를 컴파일할 차례입니다.

먼저 --help 플래그를 사용하면 매뉴얼을 확인할 수 있어 유용합니다:

g++ --help
리눅스에서 G++ 컴파일러 설치 및 사용하는 방법 완벽 가이드

컴파일러와 설정에 대한 추가 정보가 필요할 때가 있습니다. --dumpspecs 플래그를 사용하면 컴파일러에 내장된 스펙 문자열(spec strings)을 출력할 수 있습니다:

g++ --dumpspecs

이 명령을 통해 컴파일러의 기능과 다양한 옵션을 한눈에 파악할 수 있습니다.

g++으로 기본적인 컴파일을 수행하려면 다음 형식을 사용합니다:

g++ [파일명]

예를 들어 "main.cpp"라는 파일이 있다면 아래와 같이 입력하여 컴파일할 수 있습니다:

g++ main.cpp

컴파일된 실행 파일은 기본적으로 "a.out"이라는 이름으로 생성됩니다. 다음 명령으로 실행할 수 있습니다:

./a.out

실행 파일의 이름을 직접 지정하고 싶다면 -o 플래그를 사용하세요:

g++ -o [생성할 이름] [컴파일할 파일]

실행 파일 이름을 "main"으로 지정하고 싶다면 다음과 같이 입력합니다:

g++ -o main main.cpp
리눅스에서 G++ 컴파일러 설치 및 사용하는 방법 완벽 가이드

여러 오브젝트 파일을 하나로 링크(link)해야 하는 경우에는 다음 형식을 사용합니다:

g++ -o [결과 파일] [obj1.o] [obj2.o]

예를 들어 "object-1.o"와 "object-2.o"라는 오브젝트 파일을 "main"이라는 실행 파일로 합치려면 다음과 같이 입력합니다:

g++ -o main object-1.o object-2.o

라이브러리와 헤더 파일이 위치한 루트 디렉터리를 지정하려면 --sysroot 플래그를 사용하세요:

g++ -o [이름] --sysroot [디렉터리] main.cpp

"-Wall" 옵션으로 경고 메시지 표시하기

코드를 컴파일할 때 모든 경고 메시지를 확인하면 디버깅에 큰 도움이 됩니다. 다행히 g++에는 이 기능이 기본으로 내장되어 있어 바로 사용할 수 있습니다.

모든 경고 메시지를 표시하려면 -Wall 플래그를 사용하세요(대문자 "W"임에 주의하세요):

g++ -o main main.cpp -Wall

정적 라이브러리 만들기

라이브러리 제작은 적합한 코드 에디터를 고르는 것만큼이나 소프트웨어 개발에서 중요한 부분입니다. ar 명령 같은 몇 가지 요령만 익히면 g++을 사용해 손쉽게 라이브러리를 만들 수 있습니다.

먼저 오브젝트 파일을 컴파일합니다:

g++ -o obj.o main.cpp

다음으로 ar 유틸리티에 "rcs" 옵션을 붙여 아카이브(".a") 파일을 생성합니다:

ar rcs archive.a obj.o

마지막으로 생성한 라이브러리를 g++과 함께 사용합니다:

g++ -o final example.cpp archive.a

자주 묻는 질문(FAQ)

1. 이 도구로 .c 파일도 컴파일할 수 있나요?

기술적으로는 가능합니다. 다만 g++은 본래 C++ 전용 컴파일러이므로, .c 파일 컴파일에는 gcc 유틸리티가 더 적합합니다. 또한 g++은 .c 파일을 어차피 C++ 파일로 취급한다는 점도 유의해야 합니다.

그래도 g++으로 .c 파일을 컴파일하고 싶다면 -c 플래그를 사용하면 됩니다:

g++ -c [example.c] -o example
리눅스에서 G++ 컴파일러 설치 및 사용하는 방법 완벽 가이드

2. 굳이 gcc 대신 g++을 사용해야 하는 이유가 있나요?

gcc 역시 C++ 컴파일러로 충분히 사용할 수 있습니다. 하지만 g++은 사실상 gcc를 C++에 맞게 조정한 버전으로, C++ 코드를 다루는 프로그래머에게 더 적합한 추가 기능과 특성을 제공합니다.

3. 최신 버전은 무엇인가요?

2022년 1분기 기준 g++의 최신 버전은 11.2.0이며, 2021년 7월에 출시되었습니다. 참고로 GCC는 꾸준히 업데이트되고 있으므로, 최신 릴리스 정보는 GNU 공식 웹사이트에서 확인하는 것이 좋습니다.