当前位置: 首页>>技术教程>>正文


我如何在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.

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

最佳解决思路

正确安装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中配置的唯一版本,因此将update-alternatives添加到4.8,所以实际上有一种替代方案,方法是使用:

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

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


对于GCC 5.X或6,软件包(以及相应的命令)仅称为gcc-5gcc-6等。这是由于GCC’s version scheme(其中5.1是第一个GCC 5版本)和future 5.X releases are for bug fixes中的更改所致。

次佳解决思路

使用Toolchain Test Builds 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-base)和GCC Go 4.9编译器(gccgo-4.9)可用,但其他前端则不可用。我不知道为什么。

第三种解决思路

要特别调用gcc 4.9,请在命令提示符处使用gcc-4.9

您可以通过在gcc末尾添加连字符和版本号来单独调用您安装的所有gcc版本。在你的情况下,gcc-4.8gcc-4.9应该可用。在终端中,输入gcc-(注意连字符)和推送选项卡两次以查看是否安装了任何其他版本。

请注意,默认的gcc可能仍然是4.8。 (使用gcc -v来验证这一点。)不幸的是,如果您从默认存储库安装了gcc-4.9,那么更改默认值并不重要,因为它不会添加update-alternatives条目。如果您对如何更改默认值感兴趣,请参阅此选择gcc和g ++版本的答案。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/539.html,未经允许,请勿转载。