2025년 1월 19일 일요일

GCC/G++ 버젼 10 (-std=c++2a 지원) 설치

GCC/G++ 버젼 10 (-std=c++2a 지원) 설치

우분투 20.04의 최신 gcc/g++ 버젼은 9 이다. 오픈-소스 EDA 도구들의 빌드에 문제없다. 특히 SystemC 3.0 이 C++ 표준 17을 요구하는데 g++ 버젼 9 으로 충분했다.

최근 Verilator 가 업데이트 하면서 --timing 옵션을 사용하려면 <coroutine>을 요구하는데 g++ 버젼 9는 이를 지원하지 않는다. 이에 대응 하려면 gcc/g++ 10를 설치해야 한다. 이 버젼은 C++ 표준 20/2a 를 지원한다.

우분투 20.04에서 gcc/g++ 10의 설치 방법

현재 버젼 확인:

    $ gcc --version

    $ g++ --version

버젼 정보가 9.x.x 일 경우, 10 버젼용 컴포넌트들을 설치한다.

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

두개의 버젼이 동시에 존재하므로 버젼 10을 기본으로 설정한다. 버젼 9는 우선순위를 낮춰준다.

    $ 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/g++ 버젼 10 이다.

    $ gcc --version
    gcc (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0
    Copyright (C) 2020 Free Software Foundation, Inc.

    $ g++ --version
    g++ (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0
    Copyright (C) 2020 Free Software Foundation, Inc.

복수의 개발 도구 버젼이 존재하는 경우 선택할 수 있다.

    $ 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:

현재 기본으로 선택된 gcc가 버젼 10이다. 버젼 9를 지정할 수 있다.

    $ 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:


댓글 없음:

댓글 쓰기