这Precise 档案库中的最新版本 GCC是 4.6.3。但是,GCC 4.7 增加了对一些较新的 C++11 功能(如委托构造函数)的支持。Quantal 的软件包档案中有可用的 GCC 4.7.2。
有什么方法可以在 Precise 上安装 GCC 4.7 吗?更好的是,有没有一种简单的方法可以将某个版本中的较新版本的软件包移植到较旧的版本?
答案1
我在这里创建了一个包含 Precise 的 GCC 4.7 版本的 PPA:
ppa:george-edison55/gcc4.7-precise(单击此处获取有关使用 PPA 的说明。)
假设您有一个 Launchpad 帐户并在那里注册了您的 GPG 密钥,那么将软件包从一个版本反向移植到另一个版本是一个相对简单的过程。
确保您拥有ubuntu-开发工具安装的软件包:
sudo apt-get install ubuntu-dev-tools
运行 backport 命令的语法如下所示:
backportpackage -s [new_release] -d [old_release] -u [ppa] [package_name]
上述命令将从 反向移植[package_name]
到[new_release]
并将[old_release]
其上传到[ppa]
。请注意,在此特定情况下,您不仅需要反向移植,gcc-4.7
还gcj-4.7
需要gcc-defaults
以该顺序。
答案2
一个稍微简单一点的方法是利用Ubuntu 工具链上传器(受限)团队的 PPA测试版本,其中包含旧版本中较新工具链的工具链版本(包括 gcc 等)。上面的链接显示了 Precise 包,但它们确实可以编译。
可用的版本包括 gcc 4.7、4.8、4.9 和 5,但我只测试了 4.7。
您始终可以反向移植您自己的 gcc 包等,但这总是需要时间。