我使用的是 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
我想知道when的版本是什么gcc-7
。
它由
gcc-7
(gcc
取决于gcc-7
)决定: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 7 作为默认 gcc 版本,但具有来自 gcc-8 的 libstdc++,因此安装了 gcc-7-base 和 gcc-8-base。
不幸的是,18.04 现已从 packages.ubuntu.com 中删除,但 wayback 机器有相关页面的副本,显示默认 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