如何在 Ubuntu 上使用最新的 GCC?

如何在 Ubuntu 上使用最新的 GCC?

我想用最新版本的 编译我的程序gcc

Ubuntu 14.04 附带 gcc 4.8.2,但还有 4.9.0 可用,而且,我发现它可以作为包使用:gcc-4.9。我尝试安装它

sudo apt-get install gcc-4.9

但它说

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcc-4.9-base' for regex 'gcc-4.9'
gcc-4.9-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

看起来它已经安装了,只是不是默认的?我如何使用它来构建我的程序?

答案1

正确安装 gcc-4.9 并将其设置为默认 gcc 版本的最佳方法是使用:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

带有--slaveg++会导致g++与 一起切换gcc为同一版本。但是,此时 gcc-4.9 将是您在 中配置的唯一版本update-alternatives,因此将 4.8 添加到update-alternatives,因此实际上有一个替代方案,方法是使用:

sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

然后,您可以检查设置了哪一个,并使用以下命令来回更改:

sudo update-alternatives --config gcc

如果您遇到 update-alternatives gcc 优先级 60 不高于以前安装的版本的问题,您可以使用以前的 update-alternatives --config gcc 命令来检查已安装的版本并使用:

sudo update-alternatives --remove gcc

或者:

sudo update-alternatives --remove-all gcc

注意:您可以跳过安装 PPA 存储库并直接使用,/usr/bin/gcc-4.9-base但我更喜欢使用最新更新的工具链。


对于 GCC 5.X 或 6,软件包(以及相应的命令)被称为gcc-5gcc-6等。这是由于GCC 的版本方案其中 5.1 是第一个 GCC 5 版本,并且未来的 5.X 版本将修复错误

答案2

终极超级大师兼容性表

好的,让我们这样做:

                  GCC                clang
        +-------------------------+--------------------------------+
        | 13 12 11 10 9 8 7 6 5 4 | 16 15 14 13 12 11 10 9 8 7 6 5 |
+-------+-------------------------+--------------------------------+
| 23.10 |  D  M M  M  M           |  D  M  M  M                    |
| 23.04 |  M  D  M  M M           |  M  D  M  M                    |
| 22.10 |     D  M  M M           |     D  M  M                    |
| 22.04 |     M  D  M M           |        D  M  M  M              |
| 21.10 |        D  M M M         |           D  M  M  M M         |
| 21.04 |        M  D M M M       |              D  M  M M         |
| 20.10 |           D M M M       |                 D  M M M M M   |
| 20.04 |           P D M M       |                    D M M M M   |
| 19.10 |             D M M       |                                |
| 19.04 |             M D M M     |                                |
| 18.10 |               D M M M   |                                |
| 18.04 |           P P M D M M   |                      M M M D M |
| 16.04 |             P P P P D M |                                |
+-------+-------------------------+--------------------------------+

表格上的空白处表示“没有可用的软件包”或“我没费心检查”。值得注意的是,我并没有仔细研究过 PPA 软件包。接受编辑。

所有问题:

如何将非默认的 GCC 设置为默认?

例如,您安装了/usr/bin/gcc-7但您想/usr/bin/gcc在运行时使用它而不是gcc main.c

sudo update-alternatives按照其他答案中提到的使用:https://askubuntu.com/a/581497/52975它为您创建所需的符号链接。

也可以看看:`update-alternatives` 到底起什么作用?

如何从源代码构建自己的工具链

如果 PPA 对你来说还不够旧/新,请参阅以下内容:

旧 GCC 版本问题

答案3

使用工具链测试构建 PPA

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9

我认为 GCC 4.9 尚未完全适用于 Ubuntu 14.04。基础软件包(gcc-4.9-基础)和 GCC Go 4.9 编译器(gccgo-4.9) 可用,但其他前端不可用。我不知道为什么。

答案4

要具体调用 gcc 4.9,请gcc-4.9在命令提示符下使用。

您安装的所有 gcc 版本都可以通过在 末尾添加连字符和版本号来单独调用gcc。 在您的例子中,gcc-4.8gcc-4.9应该可用。 在终端中,输入gcc-(注意连字符)并按两次按钮以查看是否安装了任何其他版本。

请注意,默认 gcc 可能仍为 4.8。(用于gcc -v验证这一点。)不幸的是,如果您从默认存储库安装了 gcc-4.9,则更改默认值并不是一件容易的事,因为它没有添加 update-alternatives 条目。如果您对如何更改默认值感兴趣,请参阅此问题的答案这个问题

相关内容