티스토리 뷰

반응형

Ubuntu에서 gcc/g++10 기본 패키지로 제공되지만 제대로 사용하려면 몇 가지의 추가 설치와 설정을 해 주어야 합니다.

 

추가적으로 이 글은, Visual Studio의 Linux C++ 프로젝트에서 원격 빌드 컴퓨터를 사용하고 컴파일러의 버전을 C++20로 사용하려고 할 때, g++ : error : unrecognized command line option ‘-std=c++20’; did you mean ‘-std=c++2a’? 오류를 해결하는 데에도 도움이 됩니다.

 

먼저 build-essential 패키지를 설치합니다.

$ sudo apt install build-essential

 

build-essential 패키지를 설치하면 gcc에 필요한 환경을 함께 설치해줍니다. 다만 이 패키지에 포함된 gcc버전이 9이므로 10을 추가로 설치해 줍니다.

 

gcc,g++ 10 패키지를 설치합니다.

$ sudo apt install g++-10 gcc-10

 

설치가 완료되면 기본 gcc를 update-alternatives를 사용하여 10으로 지정합니다.

$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 40
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 60
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 40
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 60

 

모든 설치와 설정이 완료되었습니다. 버전을 확인해 봅니다.

$ gcc --version
gcc (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

 

만약 9로 기본 gcc를 변경하려 한다면 config를 통해 변경해 줍니다.

$ 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   60        auto mode
  1            /usr/bin/gcc-10   60        manual mode
  2            /usr/bin/gcc-9    40        manual mode

Press <enter> to keep the current choice[*], or type selection number:



$ sudo update-alternatives --config g++
There are 2 choices for the alternative g++ (providing /usr/bin/g++).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++-10   60        auto mode
  1            /usr/bin/g++-10   60        manual mode
  2            /usr/bin/g++-9    40        manual mode
  
  Press <enter> to keep the current choice[*], or type selection number:

위 명령어를 입력하면 기본으로 사용할 바이너리를 선택하라고 출력되는데, 해당하는 Selection의 번호를 입력하고 엔터키를 눌러서 변경합니다.

반응형

'SW개발 > C,C++' 카테고리의 다른 글

C++에서 C#의 Delegate처럼 Callback사용  (0) 2022.10.24
CentOS8에서 gcc/g++9 설치 및 C++20 사용  (0) 2022.03.03