如何安装gcc-4.8


94

我在系统上检查了gcc版本。

当前为4.6.3。我读到gcc-4.8已发布。

我尝试了以下命令,但未成功:

sudo apt-get install gcc (gcc is already the newest version)
sudo apt-get install gcc-4.8 (unable to locate package)

有人知道如何在12.04上安装此软件包吗?


@maggotbrain的答案对我有用,尽管我不得不添加:sudo在我遇到此问题时apt-get install gcc-multilib:superuser.com/questions/432202/make-fails-compiling-gcc
skillman

2
未来的Google员工注意事项:如果您收到错误消息,例如对lexer_line的未定义引用,这是因为缺少工具:bison和flex sudo apt-get install bison sudo apt-get install flex如此处指出:http:// stackoverflow。 com / questions / 4262531 / trouble-building-gcc-4-6
virtualPN

Answers:


119

GCC-4.8现在可用于12.04 Precise吗?

更新:从6/05/2013起,当前有适用于12.04(精确)的gcc 4.8.1发行版可从https://launchpad.net/~ubuntu-toolchain-r/+archive/test获取

简短的答案是:gcc-4.8当前可通过工具链PPA 通过编译源代码在12.04(Precise)中使用(详细信息请参见下文)。

发布公告

公告对GCC-4.8的发布被做了3月22日,所以你可能不会在官方库,只是还没有看到这一点。

但是,似乎Launchpad确实具有适用于包含gcc-4.8 的工具链测试版本的PPA ,此处为:https : //launchpad.net/~ubuntu-toolchain-r/+archive/test

根据更改日志和软件包列表,有i386,amd64,arm和powerpc的deb,它们是根据rar 13.04构建的。

gcc的最新可用版本(适用于12.04)是4.8.1,可在工具链PPA中获得。

添加工具链/测试PPA:

要将PPA添加到您的系统,请打开一个终端(Ctrl+ Alt+ t)并运行以下命令:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

还将提示您安装许多建议的软件包。建议安装这些软件包,但这些软件包是可选的,用于安装gcc-4.8。

在gcc-4.8中有哪些C ++功能在gcc-4.7.2中不可用?

  • GNU.ORG称,gcc-4.7支持许多C ++ 11功能
  • 从gcc-4.8版本开始,gcc-4.7不支持64个功能中的8个(请参阅GCC中的C ++ 0x / C ++ 11支持

  • 这些功能是:

    Language Features
    - Rvalue references for *this
    - Generalized attributes
    - Alignment support
    - Inheriting constructors
    Concurreny
    - Bidirectional Fences
    - Memory model
    - Abandoning a process and at_quick_exit
    - Thread-local storage 
    
  • 对于GCC-4.8变化的完整列表,请参阅变更列表

我现在需要12.04 Precise上的这些gcc功能。我怎样才能得到它们?

从源代码构建GCC-4.8:

如果您现在需要在12.04上使用gcc-4.8,则唯一的选择是从source编译它

安装之前,请阅读GCC安装常见问题解答

您可以从gnu.org的镜像站点之一下载gcc-4.8,也可以直接从其SVN服务器下载gcc-4.8 。

这是一个从源代码进行编译的步骤示例(请参见此处以获取更多详细信息。)请注意,这些步骤可能会因您的系统和首选项而有所不同。

  1. 下载源代码

    • 建立构建目录(mkdir gcc-build && cd gcc-build
    • 下载源文件:(wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2调整此命令以使用适当的镜像站点
    • 解压缩文件(tar -xvjf <file name>
  2. 安装一些其他库(sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev

  3. 编译源代码: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. 运行make(这需要一些时间才能完成。去煮咖啡或烤饼干。;-))
  5. 安装代码: sudo make install

此过程完成后,请运行命令gcc --version以验证安装是否成功完成。您应该看到类似于以下输出的内容:

maggotbrain@foucault:~$ gcc --version
gcc (Linaro 4.8.0) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

最重要的是:感谢所有为您提供易于安装Ubuntu反向端口的人。给他们一些你在跑步时烘烤的饼干make。;-)


优秀答案,E: Unable to locate package gcc-4.8
唯一的

2
安装额外的库对我来说还不够,但是可以对其进行./contrib/download_prerequisites.sh修复(来自stackoverflow.com/questions/9253695/…)。
Gauthier 2013年

7
注意:我还必须安装g ++-4.8软件包(除gcc-4.8之外)才能编译C ++代码。否则,我会收到编译错误:gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8
鲍里斯·达尔斯泰因

我能够在Precise
Homunculus Reticulli 2013年

1
@ John Dibling-可以肯定的是,公开的方法确实可以安装文件,但是这样您就永远不会生成任何软件包或安装任何包...因此,您无法找到它们(-):-)。好了,有一种快速方法可以使用link中的debian文件夹自动构建软件包。我已经成功完成了其他软件包。此解决方案将安装所有相关的软件包,包括g ++等...
Antonio

1

因此,至少在手动安装方面,请回答以上问题。即使经过sudo make install,运行gcc仍只运行股票版本4.6.3。甚至尝试gcc-4.8还是gcc-4.8.0不起作用。跑步/app/gcc/4.8.0/bin/gcc似乎是对我唯一有效的方法。我的意思是,这有点of脚,但至少有效。


5
[:facepalm:]在将事情称为“ lam脚”之前,您应该升级操作系统知识。您可以从阅读有关PATH的概念开始:en.wikipedia.org/wiki/PATH_
变量

1
当然,因为您没有使用DEBIAN / postinst脚本安装任何软件包,所以必须通过update-alternatives cmd 手动设置系统要使用的默认版本。行...如果使用了--prefix = / usr,则无需干预PATH ...
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.