Ubuntu 18.04.6 LTS를 사용하고 있으며 명령을 사용하면 dpkg -l
결과에 다음 항목이 포함됩니다.
ii gcc 4:7.4.0-1ubu amd64 GNU C compiler
ii gcc-7 7.5.0-3ubunt amd64 GNU C compiler
ii gcc-7-base:amd 7.5.0-3ubunt amd64 GCC, the GNU Compiler Collection
ii gcc-8-base:amd 8.4.0-1ubunt amd64 GCC, the GNU Compiler Collection
gcc
현재 버전이 무엇인지 알고 싶습니다 gcc-7
.
답변1
Debian/Ubuntu에는 gcc 패키지, Python 및 llvm 패키지를 포함하여 동시에 여러 패키지 이름으로 여러 버전을 패키지하는 많은 툴체인 패키지가 있습니다.
여기에는 다음을 포함하여 여러 가지 이유가 있습니다.
- 새 버전으로 인해 빌드가 실패할 경우 패키지 빌드를 일시적으로 이전 버전으로 되돌릴 수 있는 "이스케이프 해치"를 제공합니다. 이런 종류의 기능은 스스로 빌드해야 하는 컴파일러에 특히 유용합니다.
- 이를 통해 얼리 어답터 패키지가 전체 배포판의 기본값을 전환하기 전에 새 버전을 테스트 및/또는 사용할 수 있습니다.
- 이를 통해 다양한 언어 프런트엔드 및/또는 다양한 아키텍처가 서로 다른 시간에 버전을 전환할 수 있습니다.
이름에 버전 번호 없이 패키지를 빌드하는 "기본" 소스 패키지(gcc의 경우 gcc-defaults)가 있습니다. 배포판에서는 이러한 패키지를 사용하여 도구의 기본 버전을 설정합니다.
따라서 gcc-7 패키지에는 gcc 버전 7.x가 포함되어 있습니다. gcc 패키지는 해당 특정 버전의 "기본" 버전인 gcc의 주요 버전에 의존하며 해당 버전에 대한 심볼릭 링크를 포함합니다.
gcc-<version>-base에는 gcc 소스 패키지에서 빌드된 모든 패키지에서 공유되는 일부 파일이 포함되어 있습니다. 특히 여기에는 libstdc++6이 포함됩니다.
libstdc++6은 "기본" 시스템을 사용하지 않으며 배포판의 최신 gcc-x 소스 패키지에서 제공됩니다. 이 버전의 gcc는 아직 기본 버전이 되지 않았습니다.
18.04에는 기본 gcc 버전으로 gcc 7이 있지만 gcc-8의 libstdc++가 있으므로 gcc-7-base와 gcc-8-base가 모두 설치된 것 같습니다.
불행하게도 18.04는 이제 packages.ubuntu.com에서 제거되었지만 기본 gcc는 버전 7이지만 libstdc++6은 gcc-8 소스 패키지에서 온 것임을 보여주는 관련 페이지의 복사본이 반환 시스템에 있습니다. .
http://web.archive.org/web/20230208173902/https://packages.ubuntu.com/bionic/gcc
http://web.archive.org/web/20220809174431/https://packages.ubuntu.com/bionic/libstdc%2B%2B6