我的Debian 7 armel嵌入式系统目前有g ++ 4.6,我想升级到g ++ 4.9以使用新的C ++ 11功能。我该怎么做?
我目前的sources.list内容是:
deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main deb http://ftp.us.debian.org/debian wheezy main non-free deb-src http://ftp.us.debian.org/debian wheezy main non-free
包的简单apt-get安装不起作用:
root@arm:~# apt-get install g++-4.9 Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package g++-4.9 E: Couldn't find any package by regex 'g++-4.9'
答案 0 :(得分:15)
另一种解决方法可能是根据this blog post安装来自" Jessie"的g ++ 4.9软件包。简而言之,在安装新的G ++时,您必须告诉APT使用Jessie repos。首先让当前的Wheezy保持最新状态:
sudo apt-get update
sudo apt-get upgrade
然后进行备份:-)并修改/etc/apt/sources.list
,以便用"wheezy"
替换字符串"jessie"
:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.WHEEZY
sudo vi /etc/apt/sources.list
现在更新软件包列表并安装4.9版本的GCC / G ++:
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
此后恢复原状"包清单:
sudo cp /etc/apt/sources.list.WHEEZY /etc/apt/sources.list
sudo apt-get update
这留下了原始的GCC,G ++。如果您希望使用4.9版本进行编译,请相应地设置CC
和CXX
env变量,或者明确地将编译器调用为gcc-4.9
或g++-4.9
。
答案 1 :(得分:5)
可能需要:packaging-dev
,ubuntu-dev-tools
(这允许您在chroot中构建一个包,而不会使用构建依赖包来污染您的系统)
sudo pbuilder create
如果你想为特定的发行版构建,(pbuilder在chroot中使用构建系统发行版)你可以使用pbuilder-dist [precise / oneric / trusy / etc ...]创建
pull-debian-source gcc-4.9 [4.9.0-6]
特定的debian修订版是可选的,但如果你想要实验/不稳定/测试/稳定版本,则可能很有用 你也可以从特定的ubuntu发行版中添加它们作为deb-src添加到sources.list并使用sudo apt-get src
sudo pbuilder build gcc-4.9_4.9.0-6.dsc
在下载的文件中有一个.dsc文件,对于最新的gcc,它是gcc-4.9_4.9.0-6.dsc,它是一个包描述符文件。 .orig.tar。[gz / xz]是源码tarball。
mkdir /convenient/place/for/repo
cp /var/cache/pbuilder/result/* /path/to/repo
cd /path/to/repo
apt-ftp archive packages . > Packages
sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list`
请注意,您也可以使用从任何地方下载的.debs执行此步骤(跳过步骤1-3)
apt-get update; apt-get install gcc-4.9 g++-4.9
答案 2 :(得分:1)
最好不要使用jessie软件包,而是检查它是否已被后端移植到wheezy。将其添加到您的/etc/apt/sources.list
:
deb http://http.debian.net/debian wheezy-backports main
然后执行apt-get update
并查看是否可以安装它。
答案 3 :(得分:0)
现在有一个gcc-4.9-backport。
sudo apt-get update && sudo apt-get install gcc-4.9-backport