现在12.04 Precise版是否有GCC-4.8可用?
更新:截至2013年6月5日,目前12.04(Precise)版本已经有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确实有一个PPA可用于
toolchain测试构建,其中包括gcc-4.8,链接在这里:
https://launchpad.net/~ubuntu-toolchain-r/+archive/test
根据
changelog和软件包列表,有适用于i386、amd64、arm和powerpc的deb包,并且是针对raring 13.04构建的。
12.04最新可用的gcc版本是4.8.1,可以在toolchain PPA中获取。
添加toolchain/test 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相比于gcc-4.7.2有哪些不可用的C++功能?
根据GNU.ORG的说法,gcc-4.7支持许多C++11特性。
截至gcc-4.8发布时,gcc-4.7不支持64个特性中的8个(请参见C++0x/C++11在GCC中的支持)。
这些特性包括:
语言特性
- Rvalue引用*this
- 广义属性
- 对齐支持
- 继承构造函数
并发性
- 双向栅栏
- 内存模型
- 放弃进程和at_quick_exit
- 线程本地存储
有关gcc-4.8中所有更改的完整列表,请参阅Changelist。
我现在需要在12.04 Precise上使用这些gcc功能。我该如何获取它们?
从源代码构建GCC-4.8:
如果你现在需要在12.04上使用gcc-4.8,你唯一的选择就是从源代码构建。
在安装之前,请阅读GCC安装常见问题解答。
你可以从gnu.org的镜像站点或直接从他们的SVN服务器下载gcc-4.8。
以下是一个编译源代码的步骤示例(有关更多详细信息,请参阅此处)。请注意,这些步骤可能因系统和个人偏好而有所不同。
下载源代码
- 创建一个构建目录(
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 <文件名>
)
安装一些附加库(sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
)
- 编译源码:
./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
- 运行
make
(这将需要一些时间来完成。可以去冲杯咖啡或烤些饼干;-))
- 安装代码:
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
时,给他们一些你烤的饼干吧。;-)