Ubuntu 20.04에 g++12를 설치하는 방법은 무엇입니까?

Ubuntu 20.04에 g++12를 설치하는 방법은 무엇입니까?

저는 g++12가 필요한 일부 코드를 작업 중이며 Ubuntu 20.4.4에서 이 컴파일러를 얻는 방법을 알고 싶습니다.

소스에서 설치해야 하는 경우 어떻게 해야 합니까?

나는 homebrew와 몇 가지 다른 설치 프로그램을 사용하여 몇 가지를 시도했지만 지금까지 아무 것도 작동하지 않았습니다.

답변1

최신 LTS(장기 지원) 버전의 Ubuntu로 업데이트를 고려하고 있다면 지금이 좋은 시기일 수 있습니다. Ubuntu 22.04LTS를 apt install g++-12사용하면 GCC 12와 함께 g++를 설치할 수 있습니다. 오래된 종속성에 의존하는 소프트웨어가 많지 않다면 Ubuntu를 업데이트하는 것이 아마도 가장 쉬운 방법일 것입니다 g++12! ( podman또는 컨테이너에서 쉽게 시도해 볼 수 있습니다 docker. 여기서는 자세히 설명하지 않겠습니다.)

Ubuntu 20.04에 갇혀 있다면 가장 깨끗하고 간단한 방법은 g++1222.04 패키지를 백포트하는 것입니다 g++12. 이 경우 GCC를 구축하는 방법과 기존 컴파일러 또는 ABI를 방해하여 전체 시스템을 손상시키지 않는 경쟁 g++를 설치하는 방법을 배우는 것에 대해 걱정할 필요가 없습니다. Debian(및 그 다운스트림인 Ubuntu)은 이미 이를 학습하는 작업 부하를 맡았으므로 해당 도구를 사용하기만 하면 됩니다. 놀라운!

대략적으로 말하면 이 작업을 수행하는 프로세스는 다음과 같습니다.

  1. Debian/Ubuntu 패키지 빌드 준비:

    sudo apt update
    sudo apt install -y build-essential fakeroot dpkg-dev devscripts cmake debhelper-compat dh-python equivs
    
  2. 패키지 소스를 가져옵니다. .dsc파일에 대한 링크를 찾으려면 다음 링크를 찾아야 합니다 .포장 페이지:

    mkdir gcc-12
    cd gcc-12
    dget -u https://URL/OF/DSC/FILE.dsc
    
  3. 다음에서 빌드 종속성을 설치합니다 .dsc.

    mk-build-deps -i gcc-12*.dsc
    
  4. 빌드 패키지:

    cd gcc-12-somethingsomething
    dpkg-buildpackage -us -uc -ui -d
    

지금까지의 이론. 실제로 3단계는 실패합니다. GCC12는 너무 오래된 Ubuntu 20.04와 함께 제공되는 도구에 의존합니다. 특히 데비안 패키지는 최소한 2.37 이상이 필요함을 나타 g++11냅니다 binutils.

그게 정말 핵심이야개인적으로 말하자면"최첨단 C++ 컴파일러가 필요한 일부 소프트웨어를 구축한다면 어쨌든 내 Ubuntu 20.04 환경에 맞지 않을 것이므로 보다 현대적인 Ubuntu로 업데이트해야 합니다.". 그래서 다시Ubuntu 22.04에 대한 내 제안은 다음과 같습니다., 그런 다음 apt install g++-12.

문제를 참고 싶다면 수정을 시작 gcc-12-12.*/debian/control하고 오직 의존 rules.conf하게 될 것입니다 .rules2일부 g++대신 g++11ADA 지원을 비활성화하고 요구 사항을 낮추는 binutils등의 작업을 수행하세요.

그러나 데비안 사람들은 어떤 버전의 종속성을 사용할지, 어떤 수정 사항과 백포트를 포함할지에 대해 생각했을 것입니다. 바위길이에요. 이는 "기본" 소스 빌드보다 간단할 수 있지만 예상보다 GCC에 대해 더 많이 배울 수 있는 쉬운 방법이며 빌드를 시작하는 데 몇 시간 밖에 걸리지 않습니다.

솔직히 계속 반복하지만, 갑자기 최신 컴파일러가 필요하다고 생각된다면 지금이 최신 환경으로 업데이트할 좋은 시기입니다. 그 결과 고통은 줄어들고 혜택은 더 많아졌습니다.

관련 정보