gccとgcc-Xの違い

gccとgcc-Xの違い

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 パッケージなど、複数のパッケージ名で複数のバージョンを同時にパッケージする多くのツールチェーンパッケージがあります。

これには、次のようないくつかの理由があります。

  1. 新しいバージョンがビルドに失敗した場合は、パッケージビルドを一時的に以前のバージョンに戻すことができる「エスケープハッチング」を提供します。この種の機能は、自分でビルドする必要があるコンパイラに特に便利です。
  2. これにより、アーリーアダプターパッケージがディストリビューション全体のデフォルト値を切り替える前に、新しいバージョンをテストおよび/または使用できます。
  3. これにより、さまざまな言語のフロントエンドおよび/またはさまざまなアーキテクチャが異なる時間にバージョンを切り替えることができます。

名前には、バージョン番号なしでパッケージをビルドする「デフォルト」ソースパッケージ(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

関連情報